// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.preferences.advanced;
import static org.openstreetmap.josm.tools.I18n.tr;
import java.awt.Component;
import java.awt.Dimension;
import java.util.List;
import javax.swing.JPanel;
import org.openstreetmap.josm.gui.ExtendedDialog;
import org.openstreetmap.josm.tools.WindowGeometry;
/**
* Abstract superclass of {@link ListEditor} and {@link AbstractTableListEditor}.
* @param <T> type of elements
* @since 9505
*/
public abstract class AbstractListEditor<T> extends ExtendedDialog {
protected final transient PrefEntry entry;
/**
* Constructs a new {@code AbstractListEditor}.
* @param parent The parent element that will be used for position and maximum size
* @param title The text that will be shown in the window titlebar
* @param entry Preference entry
*/
public AbstractListEditor(Component parent, String title, PrefEntry entry) {
super(parent, title, new String[] {tr("OK"), tr("Cancel")});
this.entry = entry;
setButtonIcons(new String[] {"ok.png", "cancel.png"});
setRememberWindowGeometry(getClass().getName() + ".geometry", WindowGeometry.centerInWindow(parent, new Dimension(500, 350)));
}
/**
* Returns the list of values.
* @return The list of values.
*/
public abstract List<T> getData();
protected abstract JPanel build();
}