/******************************************************************************* * Copyright (c) 2014 Open Door Logistics (www.opendoorlogistics.com) * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU Lesser Public License v3 * which accompanies this distribution, and is available at http://www.gnu.org/licenses/lgpl.txt ******************************************************************************/ package com.opendoorlogistics.studio.components.geocoder.component; import java.awt.event.ActionEvent; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.AbstractAction; import javax.swing.JCheckBox; import javax.swing.JComboBox; import com.opendoorlogistics.api.ui.UIFactory.TextChangedListener; import com.opendoorlogistics.components.geocode.Countries.Country; import com.opendoorlogistics.core.utils.ui.ShowPanel; import com.opendoorlogistics.core.utils.ui.TextEntryPanel; import com.opendoorlogistics.core.utils.ui.VerticalLayoutPanel; import com.opendoorlogistics.studio.components.geocoder.Controls; import com.opendoorlogistics.studio.controls.EditableComboBox; import com.opendoorlogistics.studio.controls.EditableComboBox.ValueChangedListener; final public class NominatimConfigPanel extends VerticalLayoutPanel{ public NominatimConfigPanel(final NominatimConfig config){ JCheckBox skipBox=new JCheckBox(new AbstractAction("Skip already geocoded rows?") { @Override public void actionPerformed(ActionEvent e) { config.setSkipAlreadyGeocoded(((JCheckBox)e.getSource()).isSelected()); } }); skipBox.setSelected(config.isSkipAlreadyGeocoded()); add(skipBox); addWhitespace(); // default server final EditableComboBox<String> serverBox =Controls.createServerBox(config.getServer()); serverBox.getEditor().setItem(config.getServer()); serverBox.addValueChangedListener(new ValueChangedListener<String>() { @Override public void comboValueChanged(String newValue) { config.setServer(serverBox.getValue()); } }); addLine(Controls.createServerLabel() , serverBox); addWhitespace(); // default country code (or none) final JComboBox<Country> countryCode =Controls.createCountryBox(config.getCountryCode()); countryCode.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { config.setCountryCode(((Country)countryCode.getSelectedItem()).getTwoDigitCode()); } }); addLine(Controls.createCountryFilterLabel(), countryCode); addWhitespace(); // email address TextEntryPanel email = new TextEntryPanel("User email address: ", config.getEmail(), new TextChangedListener() { @Override public void textChange(String newText) { config.setEmail(newText); } }); email.setToolTipText("<html>Users are requested to identify themselves in Nominatim's usage terms. This information is kept confidential.<br>See http://wiki.openstreetmap.org/wiki/Nominatim for details.</html>"); add(email); } public static void main(String []args){ ShowPanel.showPanel(new NominatimConfigPanel(new NominatimConfig())); } }