/******************************************************************************* * Copyright (c) MOBAC developers * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. ******************************************************************************/ package mobac.mapsources.custom; import java.lang.reflect.Constructor; import javax.swing.JOptionPane; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import mobac.mapsources.mappacks.openstreetmap.CloudMade; import mobac.program.interfaces.MapSource; import mobac.program.interfaces.WrappedMapSource; import mobac.utilities.I18nUtils; /** * Requires the OpenStreetMap * * */ @XmlRootElement(name = "cloudMade") public class CustomCloudMade implements WrappedMapSource { private static boolean ERROR = false; public static Class<CloudMade> CLOUD_MADE_CLASS = null; @XmlElement public String styleID; @XmlElement public String displayName; public MapSource getMapSource() { try { Constructor<CloudMade> c = CLOUD_MADE_CLASS.getConstructor(String.class, String.class); return c.newInstance(styleID, displayName); } catch (Exception e) { String errorMsg = I18nUtils.localizedStringForKey("msg_environment_error_load_cloudmade"); if (!ERROR) { JOptionPane.showMessageDialog(null, errorMsg, I18nUtils.localizedStringForKey("Error"), JOptionPane.ERROR_MESSAGE); ERROR = true; } throw new RuntimeException(errorMsg, e); } } }