@Override
	protected void buildFreshLayout() {
		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();
		List<Node> contentHexLabels = new ArrayList<>();
		Label lblAddress = new Label(StringUtil.fillLeft(addressWidth + 1, " ", "Address:"));
		for (int i = 0; i < rowLength; i++) {
			if (i % rowSplit == 0 && i < rowLength - 1)
				contentHexLabels.add(new SmallSpacer());
			Label columnOffset = new Label(HexUtil.strFormat00((byte) i));
			contentHexLabels.add(columnOffset);
		}
		List<Node> contentAsciiLabels = new ArrayList<>(Arrays.asList(new Label("A"), new Label("S"), new Label("C"), new Label("I"), new Label("I")));
		for (int i = 5; i < rowLength; i++) {
			Label filler = new Label(".");
			filler.setOpacity(0.2);
			contentAsciiLabels.add(filler);
		}
		setChildren(lblAddress, contentHexLabels, contentAsciiLabels);
	}
Extended header to display the hex editor header row.

@author Matt Coley
recaf-ui/src/main/java/software/coley/recaf/ui/pane/editing/hex/cell/HexRowHeader.java