private void refreshLayout() {
		if (baseOffset < 0)
			throw new IllegalStateException("Hex row refreshed in unsupported context");

		ObservableList<Node> children = layout.getChildren();
		int rowLength = config.getRowLength().getValue();
		int rowSplit = config.getRowSplitInterval().getValue();
		int addressWidth = Integer.toHexString(rowCount.get() * rowLength).length();
		boolean showAddress = config.getShowAddress().getValue();
		boolean showAscii = config.getShowAscii().getValue();

		// Update the label value.
		int spaces = 0;
		if (showAddress) {
			Label lblAddress = (Label) children.getFirst();
			lblAddress.setText(StringUtil.fillLeft(8, " ", HexUtil.strFormat(addressWidth, baseOffset) + ":"));
			spaces++;
		}

		// Update the hex values
		HexAccess read = ops.currentAccess();
		int asciiChildOffset = 0;
		for (int i = 0; i < rowLength; i++) {
			// Account for spacer padding
			if (i % rowSplit == 0 && i < rowLength - 1)
				spaces++;
			int childIndex = i + spaces;
			int offset = baseOffset + i;
			boolean outOfBounds = !read.isInBounds(offset);

			HexCellBase valueLabel = (HexCellBase) children.get(childIndex);
			valueLabel.setDisable(outOfBounds);
			valueLabel.setOpacity(outOfBounds ? 0.1 : 1);
			valueLabel.updateOffset(offset);

			// Record the last child index as the beginning of where to look for ascii display controls.
			asciiChildOffset = childIndex;
		}
		if (showAscii) {
			// Offset by the last row-split padding (not counted above), and the first padding before the ascii begins.
			asciiChildOffset += 2;

			// Update ascii values.
			for (int i = 0; i < rowLength; i++) {
				int childIndex = asciiChildOffset + i;
				int offset = baseOffset + i;
				boolean outOfBounds = !read.isInBounds(offset);

				HexCellBase asciiLabel = (HexCellBase) children.get(childIndex);
				asciiLabel.setDisable(outOfBounds);
				asciiLabel.setOpacity(outOfBounds ? 0.1 : 1);
				asciiLabel.updateOffset(offset);
			}
		}

		// Update selection so that the newly generated row will display the current selection
		// if it appears on this row.
		updateSelection(ops.navigation().selectionOffset());
	}
Updates the existing {@link HexCellBase} items in this row.
<br>
This assumes the {@link #baseOffset} does not represent the header, or the last row in the file
which are special cases and not supported.
recaf-ui/src/main/java/software/coley/recaf/ui/pane/editing/hex/cell/HexRow.java