private JPanel create(MemoryBlock block, Program program) {
		JPanel panel = new JPanel(new PairLayout(5, 5, 150));
		AddressChangeListener listener = new AddressChangeListener();

		startAddressInput = new AddressInput(program, listener);
		startAddressInput.setName("NewStartAddress");
		startAddressInput.setAccessibleName("New Start Address");

		endAddressInput = new AddressInput(program, listener);
		endAddressInput.setName("EndAddress");
		endAddressInput.setAccessibleName("New End Address");

		Address start = block.getStart();
		Address end = block.getEnd();

		startAddressInput.setAddress(start);
		startAddressInput.setAddressSpaceEditable(false);
		endAddressInput.setAddress(end);
		endAddressInput.setAddressSpaceEditable(false);

		boolean isExpandUp = dialogType == EXPAND_UP;

		startField = new JTextField(10);
		startField.setName("StartAddress");
		startField.setEnabled(isExpandUp);
		startField.setText(start.toString());

		endField = new JTextField(10);
		endField.setName("EndAddress");
		endField.setEnabled(!isExpandUp);
		endField.setText(end.toString());

		lengthField = new RegisterField(32, null, false);
		lengthField.setName("BlockLength");
		lengthField.getAccessibleContext().setAccessibleName("Block Length");
		lengthField.setValue(Long.valueOf(model.getLength()));

		panel.add(
			new GLabel(isExpandUp ? "New Start Address:" : "Start Address:", SwingConstants.RIGHT));
		panel.add(isExpandUp ? (JComponent) startAddressInput : startField);
		panel.add(
			new GLabel(isExpandUp ? "End Address:" : "New End Address:", SwingConstants.RIGHT));
		panel.add(isExpandUp ? (JComponent) endField : endAddressInput);
		panel.add(new GLabel("Block Length:", SwingConstants.RIGHT));
		panel.add(lengthField);

		JPanel mainPanel = new JPanel(new BorderLayout());
		mainPanel.add(panel, BorderLayout.CENTER);
		return mainPanel;
	}
Create the main work panel.
@return JPanel
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/ExpandBlockDialog.java