package org.openslx.dozmod.gui.changemonitor; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; /** * For wrapping editors that contain controls to edit a list of some kind. * When implementing inside a pop-up window, it should be sufficient to * trigger the change event only once, when the user cancels or saves the * changes, since the main window that's interested in the changes will * be covered anyways during editing. */ public interface GenericControlWindow { public T getState(); public void addChangeListener(ChangeListener l); } class GenericControlWrapper extends AbstractControlWrapper { private final GenericControlWindow component; public GenericControlWrapper(DialogChangeMonitor dcm, GenericControlWindow comp) { super(dcm, null); this.component = comp; comp.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { contentChanged(); } }); } T getCurrentValue() { return this.component.getState(); } }