@Override
	public LayoutManager convertLayoutElement(Element elm)
	{
		double[][] args = new double[2][0];
		if (elm.hasAttribute("cols"))
		{
			String cols = elm.getAttribute("cols").toLowerCase().trim();
			cols = cols.replaceAll("(tablelayout\\.)?fill", String.valueOf(TableLayout.FILL));
			cols = cols.replaceAll("(tablelayout\\.)?preferred", String.valueOf(TableLayout.PREFERRED));
			if (cols.matches("\\{.*\\}"))
			{
				cols = cols.substring(1, cols.length()-1);
			}
			String[] x;
			if (cols.matches(numberRegex+"(\\s*,\\s*"+numberRegex+")*"))
			{
				x = cols.split("\\s*,\\s*");
			}
			else
			{
				x = cols.split("\\s+");
			}
			args[0] = new double[x.length];
			for (int i = 0; i < x.length; i++)
			{
				args[0][i] = Double.valueOf(x[i]);
			}
		}
		if (elm.hasAttribute("rows"))
		{
			String rows = elm.getAttribute("rows").toLowerCase().trim();
			rows = rows.replaceAll("(tablelayout\\.)?fill", String.valueOf(TableLayout.FILL));
			rows = rows.replaceAll("(tablelayout\\.)?preferred", String.valueOf(TableLayout.PREFERRED));
			if (rows.matches("\\{.*\\}"))
			{
				rows = rows.substring(1, rows.length()-1);
			}
			String[] y;
			if (rows.matches(numberRegex+"(\\s*,\\s*"+numberRegex+")*"))
			{
				y = rows.split("\\s*,\\s*");
			}
			else
			{
				y = rows.split("\\s+");
			}
			args[1] = new double[y.length];
			for (int i = 0; i < y.length; i++)
			{
				args[1][i] = Double.valueOf(y[i]);
			}
		}
		return new TableLayout(args);
	}