summaryrefslogtreecommitdiff
path: root/src/js/io/mxGraphViewCodec.js
diff options
context:
space:
mode:
authoradhitya2016-04-12 07:02:39 +0000
committeradhitya2016-04-12 07:02:39 +0000
commitdd83478e3fcaac98de690aa59e6288ad41a1c351 (patch)
tree38653bdf0ae95053f66777c4ac3fe5be5d8fbd33 /src/js/io/mxGraphViewCodec.js
parent92f3207b50a1caca07df5c5b238212af3358905b (diff)
downloadxcos-on-web-dd83478e3fcaac98de690aa59e6288ad41a1c351.tar.gz
xcos-on-web-dd83478e3fcaac98de690aa59e6288ad41a1c351.tar.bz2
xcos-on-web-dd83478e3fcaac98de690aa59e6288ad41a1c351.zip
Keyboard shortcuts work properly
Diffstat (limited to 'src/js/io/mxGraphViewCodec.js')
-rw-r--r--src/js/io/mxGraphViewCodec.js197
1 files changed, 0 insertions, 197 deletions
diff --git a/src/js/io/mxGraphViewCodec.js b/src/js/io/mxGraphViewCodec.js
deleted file mode 100644
index 110b212..0000000
--- a/src/js/io/mxGraphViewCodec.js
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- * $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;
-
-}());