diff options
Diffstat (limited to 'src/js/shape/mxStencilShape.js')
-rw-r--r-- | src/js/shape/mxStencilShape.js | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/src/js/shape/mxStencilShape.js b/src/js/shape/mxStencilShape.js deleted file mode 100644 index 9c95f8b..0000000 --- a/src/js/shape/mxStencilShape.js +++ /dev/null @@ -1,209 +0,0 @@ -/** - * $Id: mxStencilShape.js,v 1.10 2012-07-16 10:22:44 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; - -/** - * Variable: vmlScale - * - * Renders VML with a scale of 4. - */ -mxStencilShape.prototype.vmlScale = 4; - -/** - * 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: createVml - * - * Creates and returns the VML node to represent this shape. - */ -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; -}; - -/** - * 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() -{ - this.updateBoundingBox(); - - 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.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'; - - var node = this.node; - - // Workaround for VML rendering bug in IE8 standards mode where all VML must be - // parsed via assigning the innerHTML of the parent HTML node to keep all event - // handlers referencing node and support rotation via v:group parent element. - if (this.node.nodeName == 'DIV') - { - node = document.createElement('v:group'); - node.style.position = 'absolute'; - node.style.left = '0px'; - node.style.top = '0px'; - node.style.width = w + 'px'; - node.style.height = h + 'px'; - } - else - { - node.innerHTML = ''; - } - - if (mxUtils.isVml(node)) - { - var s = (document.documentMode != 8) ? this.vmlScale : 1; - node.coordsize = (w * s) + ',' + (h * s); - } - - this.stencil.renderDom(this, this.bounds, node); - - if(this.node != node) - { - // Forces parsing in IE8 standards mode - this.node.innerHTML = node.outerHTML; - } - } - else - { - while (this.node.firstChild != null) - { - this.node.removeChild(this.node.firstChild); - } - - this.stencil.renderDom(this, this.bounds, this.node); - } -}; |