summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/changemonitor/ButtonGroupWrapper.java
blob: 1768efb6ddbf695a73862a127786b542b7205bd9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package org.openslx.dozmod.gui.changemonitor;

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Enumeration;

import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.ButtonModel;

/**
 * Monitor a button group (e.g. group of radio boxes)
 */
class ButtonGroupWrapper extends AbstractControlWrapper<ButtonModel> {
	private final ButtonGroup buttons;
	
	public ButtonGroupWrapper(DialogChangeMonitor dcm, ButtonGroup group) {
		super(dcm, null);
		buttons = group;
		ItemListener listener = new ItemListener() {
			@Override
			public void itemStateChanged(ItemEvent e) {
				contentChanged();
			}
		};
		Enumeration<AbstractButton> it = buttons.getElements();
		while (it.hasMoreElements()) {
			it.nextElement().addItemListener(listener);
		}
	}

	@Override
	ButtonModel getCurrentValue() {
		return buttons.getSelection();
	}
}