private boolean blockOneLengthChanged() {

			int length = 0;
			try {
				length = getLength();
			}
			catch (InvalidInputException e) {
				return false;
			}

			// update blockOneEnd, blockTwoStart, blockTwoLength
			try {

				Address end = block.getStart().addNoWrap(length - 1);
				Address b2Start = end.addNoWrap(1);
				blockOneEnd.setAddress(end);
				blockTwoStart.setAddress(b2Start);
				long b2Length = block.getEnd().subtract(b2Start) + 1;

				blockTwoLengthField.setValue(Long.valueOf(b2Length));

			}
			catch (Exception e) {
				if (e instanceof AddressOverflowException) {
					setStatusText("Could not create new start address");
				}
				return false;
			}
			return true;
		}
Listener on the RegisterField inputs; update other fields when either
of these fields change.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/SplitBlockDialog.java