private Component buildPermissionsPanel() {

		readCB = new GCheckBox("Read");
		readCB.setName("Read");
		readCB.setSelected(model.isRead());
		readCB.addActionListener(e -> model.setRead(readCB.isSelected()));

		writeCB = new GCheckBox("Write");
		writeCB.setName("Write");
		writeCB.setSelected(model.isWrite());
		writeCB.addActionListener(e -> model.setWrite(writeCB.isSelected()));

		executeCB = new GCheckBox("Execute");
		executeCB.setName("Execute");
		executeCB.setSelected(model.isExecute());
		executeCB.addActionListener(e -> model.setExecute(executeCB.isSelected()));

		volatileCB = new GCheckBox("Volatile");
		volatileCB.setName("Volatile");
		volatileCB.setSelected(model.isVolatile());
		volatileCB.addActionListener(e -> model.setVolatile(volatileCB.isSelected()));

		artificialCB = new GCheckBox("Artificial");
		artificialCB.setName("Artificial");
		artificialCB.setSelected(model.isArtificial());
		artificialCB.addActionListener(e -> model.setArtificial(artificialCB.isSelected()));

		overlayCB = new GCheckBox("Overlay");
		overlayCB.setName("Overlay");
		overlayCB.setSelected(model.isOverlay());
		overlayCB.addActionListener(e -> model.setOverlay(overlayCB.isSelected()));

		JPanel panel = new JPanel(new HorizontalLayout(10));
		panel.setBorder(BorderFactory.createEmptyBorder(10, 30, 20, 30));
		panel.add(readCB);
		panel.add(writeCB);
		panel.add(executeCB);
		panel.add(volatileCB);
		panel.add(artificialCB);
		panel.add(overlayCB);

		return panel;
	}
Define the Main panel for the dialog here.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/memory/AddBlockDialog.java