package org.openslx.dozmod.gui.changemonitor; import java.util.List; 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 ListEditorWindow { public List getState(); public void addChangeListener(ChangeListener l); } class ListEditorWindowWrapper extends AbstractControlWrapper> { private final ListEditorWindow component; public ListEditorWindowWrapper(DialogChangeMonitor dcm, ListEditorWindow comp) { super(dcm, null); this.component = comp; comp.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { contentChanged(); } }); } List getCurrentValue() { return this.component.getState(); } }