001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.preferences.imagery;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import java.awt.Component;
007import java.awt.Dimension;
008
009import org.openstreetmap.josm.Main;
010import org.openstreetmap.josm.gui.ExtendedDialog;
011import org.openstreetmap.josm.gui.preferences.imagery.AddImageryPanel.ContentValidationListener;
012import org.openstreetmap.josm.gui.util.WindowGeometry;
013
014/**
015 * Dialog shown to add a new imagery (WMS/TMS/WMTS) source from imagery preferences.
016 * @since 5731
017 */
018public class AddImageryDialog extends ExtendedDialog implements ContentValidationListener {
019
020    /**
021     * Constructs a new AddImageryDialog.
022     * @param parent The parent element that will be used for position and maximum size
023     * @param panel  The content that will be displayed in the message dialog
024     */
025    public AddImageryDialog(Component parent, AddImageryPanel panel) {
026        super(parent, tr("Add Imagery URL"), tr("OK"), tr("Cancel"));
027        setButtonIcons("ok", "cancel");
028        setCancelButton(2);
029        configureContextsensitiveHelp("/Preferences/Imagery", true /* show help button */);
030        setContent(panel, false);
031        setMinimumSize(new Dimension(300, 400));
032        panel.addContentValidationListener(this);
033        setRememberWindowGeometry(
034                panel.getClass().getName() + ".geometry",
035                WindowGeometry.centerInWindow(Main.parent, new Dimension(400, 600))
036                );
037    }
038
039    @Override
040    public void setupDialog() {
041        super.setupDialog();
042        contentChanged(false);
043    }
044
045    @Override
046    public void contentChanged(boolean isValid) {
047        buttons.get(0).setEnabled(isValid);
048    }
049}