private PrecisionLayoutData getData(Component[][] grid, int row, int column, int rowCount, boolean first) {
		Component component = grid[row][column];
		if (component != null) {
			PrecisionLayoutData data = mConstraints.get(component);
			int hSpan = Math.max(1, Math.min(data.getHorizontalSpan(), mColumns));
			int vSpan = Math.max(1, data.getVerticalSpan());
			int i = first ? row + vSpan - 1 : row - vSpan + 1;
			int j = first ? column + hSpan - 1 : column - hSpan + 1;
			if (0 <= i && i < rowCount) {
				if (0 <= j && j < mColumns) {
					if (component == grid[i][j]) {
						return data;
					}
				}
			}
		}
		return null;
	}