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.gui.ExtendedDialog; 010import org.openstreetmap.josm.gui.MainApplication; 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(MainApplication.getMainFrame(), 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}