@Override
	protected Transferable copyCode(TaskMonitor monitor) {
		try {
			TextLayoutGraphics g = new TextLayoutGraphics();

			Rectangle rect = new Rectangle(2048, 2048);

			AddressRangeIterator rangeItr = currentSelection.getAddressRanges();
			while (rangeItr.hasNext()) {
				AddressRange curRange = rangeItr.next();
				Address curAddress = curRange.getMinAddress();
				Address maxAddress = curRange.getMaxAddress();
				while (!monitor.isCancelled()) {
					if (curAddress != null && curAddress.compareTo(maxAddress) > 0) {
						break;
					}

					curAddress = copyDataForAddress(curAddress, curRange, g, rect);
					if (curAddress == null) {
						break;
					}
				}
			}

			return createStringTransferable(g.getBuffer().toString());
		}
		catch (Exception e) {
			String message = "Copy failed: " + ExceptionUtils.getMessage(e);
			Msg.error(this, message, e);
			tool.setStatusInfo(message, true);
		}

		return null;
	}
Overridden because we don't have a single listing model from which to copy, but rather 
many different ones, depending upon the which vertex contains the selection.
Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/FGClipboardProvider.java