protected void writeDataState(SaveState saveState) {
		saveState.putLong("NAV_ID", getInstanceID());
		ByteBlockInfo info = panel.getCursorLocation();
		int blockNumber = -1;
		String blockOffset = "0";
		int column = 0;

		if (info != null) {
			blockNumber = getBlockNumber(info);
			blockOffset = info.getOffset().toString();
			column = info.getColumn();
		}
		saveState.putInt(BLOCK_NUM, blockNumber);
		saveState.putString(BLOCK_OFFSET, blockOffset);
		saveState.putInt(BLOCK_COLUMN, column);

		ViewerPosition vp = panel.getViewerPosition();
		saveState.putInt(INDEX, vp.getIndexAsInt());
		saveState.putInt(X_OFFSET, vp.getXOffset());
		saveState.putInt(Y_OFFSET, vp.getYOffset());

	}
Gets the text of the current {@link ProgramSelection}

@return the text
Ghidra/Features/ByteViewer/src/main/java/ghidra/app/plugin/core/byteviewer/ProgramByteViewerComponentProvider.java