private JPanel buildWorkPanel() {
		JPanel workPanel = new JPanel(new BorderLayout());
		workPanel.setBorder(new EmptyBorder(10, 10, 10, 10));

		readHexModePreferences();

		settingsTableModel = new SettingsTableModel(settingsDefinitions);
		settingsTableModel.addTableModelListener(e -> appliedSettings = false);
		settingsTable = new SettingsTable(settingsTableModel);
		settingsTable.setAutoscrolls(true);
		settingsTable.setRowSelectionAllowed(false);
		settingsTable.setColumnSelectionAllowed(false);

		// make the rows a bit taller to allow the integer text field editor to render correctly
		settingsTable.setRowHeight(22);

		// disable user sorting and column adding (we don't expect enough data to require sorting)
		settingsTable.getTableHeader().setReorderingAllowed(false);
		settingsTable.setColumnHeaderPopupEnabled(false);
		settingsTable.setUserSortingEnabled(false);

		settingsTable.setDefaultRenderer(Settings.class, new SettingsRenderer());
		settingsTable.setDefaultEditor(Settings.class, new SettingsEditor());

		JScrollPane scrollpane = new JScrollPane(settingsTable);
		scrollpane.setPreferredSize(new Dimension(WIDTH, HEIGHT));

		workPanel.add(scrollpane, BorderLayout.CENTER);

		boolean hasImmutableSettings = false;
		for (SettingsDefinition def : settingsDefinitions) {
			if (!settings.isChangeAllowed(def)) {
				hasImmutableSettings = true;
				break;
			}
		}
		if (hasImmutableSettings) {
			workPanel.add(new JLabel("* Immutable setting"), BorderLayout.SOUTH);
		}
		workPanel.getAccessibleContext().setAccessibleName("Settings");
		return workPanel;
	}
Get default setting specified with dialog construction
@return settings or null if not specified
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/data/AbstractSettingsDialog.java