private JPanel buildWorkPanel() {

		JPanel panel = new JPanel();
		panel.setLayout(new GridLayout(0, 2));

		JLabel l1 = new JLabel("<html><b>Show");
		l1.setHorizontalAlignment(SwingConstants.LEFT);
		panel.add(l1);

		JLabel l2 = new JLabel("<html><b>Include Typedefs");
		l2.setHorizontalAlignment(SwingConstants.CENTER);
		panel.add(l2);

		panel.add(arraysComponent.getLeft());
		panel.add(arraysComponent.getRight());
		panel.add(enumsComponent.getLeft());
		panel.add(enumsComponent.getRight());
		panel.add(functionsComponent.getLeft());
		panel.add(functionsComponent.getRight());
		panel.add(pointersComponent.getLeft());
		panel.add(pointersComponent.getRight());
		panel.add(structuresComponent.getLeft());
		panel.add(structuresComponent.getRight());
		panel.add(unionsComponent.getLeft());
		panel.add(unionsComponent.getRight());

		GButton selectAll = new GButton("Select All");
		GButton deselectAll = new GButton("Deselect All");
		selectAll.addActionListener(e -> {
			allButtons().forEach(b -> b.setSelected(true));
		});
		deselectAll.addActionListener(e -> {
			allButtons().forEach(b -> b.setSelected(false));
		});

		// spacer above buttons 
		panel.add(Box.createRigidArea(new Dimension(10, 10)));
		panel.add(Box.createRigidArea(new Dimension(10, 10)));

		JPanel p1 = new JPanel();
		p1.setLayout(new BoxLayout(p1, BoxLayout.LINE_AXIS));
		p1.add(Box.createHorizontalGlue());
		p1.add(selectAll);
		p1.add(Box.createHorizontalGlue());

		JPanel p2 = new JPanel();
		p2.setLayout(new BoxLayout(p2, BoxLayout.LINE_AXIS));
		p2.add(Box.createHorizontalGlue());
		p2.add(deselectAll);
		p2.add(Box.createHorizontalGlue());

		panel.add(p1);
		panel.add(p2);

		return panel;
	}
Data Types provider dialog to allow users to change the types that are filtered.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/datamgr/tree/DtFilterDialog.java