*/
	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();
			}
		}
	}