*
* 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; version 2 of the License.
+ * 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
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altosuilib_11;
+package org.altusmetrum.altosuilib_12;
import java.awt.*;
import java.awt.event.*;
import java.lang.Math;
import java.net.URL;
import java.net.URLConnection;
-import org.altusmetrum.altoslib_11.*;
+import org.altusmetrum.altoslib_12.*;
-class AltosUIMapPos extends Box {
+class AltosUIMapPos extends Box implements ActionListener {
+ AltosUIMapPreload preload;
AltosUIFrame owner;
JLabel label;
JComboBox hemi;
JTextField min;
JLabel min_label;
+ /* ActionListener interface */
+ public void actionPerformed(ActionEvent e) {
+ preload.center_map();
+ }
+
public void set_value(double new_value) {
double d, m;
int h;
}
public AltosUIMapPos(AltosUIFrame in_owner,
- String label_value,
- String[] hemi_names,
- double default_value) {
+ AltosUIMapPreload preload,
+ String label_value,
+ String[] hemi_names,
+ double default_value) {
super(BoxLayout.X_AXIS);
owner = in_owner;
+ this.preload = preload;
label = new JLabel(label_value);
hemi = new JComboBox<String>(hemi_names);
hemi.setEditable(false);
deg = new JTextField(5);
+ deg.addActionListener(this);
deg.setMinimumSize(deg.getPreferredSize());
deg.setHorizontalAlignment(JTextField.RIGHT);
deg_label = new JLabel("°");
min = new JTextField(9);
+ min.addActionListener(this);
min.setMinimumSize(min.getPreferredSize());
min_label = new JLabel("'");
set_value(default_value);
pbar.setMaximum(max);
pbar.setValue(0);
pbar.setString("");
- map.clear_marks();
- map.add_mark(latitude, longitude, AltosLib.ao_flight_boost);
}
});
}
return all_types;
}
+ void center_map(double latitude, double longitude) {
+ map.map.centre(new AltosLatLon(latitude, longitude));
+ map.clear_marks();
+ map.add_mark(latitude, longitude, AltosLib.ao_flight_boost);
+ }
+
+ void center_map() {
+ try {
+ center_map(lat.get_value(), lon.get_value());
+ } catch (ParseException pe) {
+ }
+ }
+
public void itemStateChanged(ItemEvent e) {
int state = e.getStateChange();
AltosLaunchSite site = (AltosLaunchSite) o;
lat.set_value(site.latitude);
lon.set_value(site.longitude);
+ center_map(site.latitude, site.longitude);
}
}
}
else
r = r * 1000;
- map.map.centre(new AltosLatLon(latitude, longitude));
+ center_map(latitude, longitude);
loader = new AltosMapLoader(this,
latitude, longitude,
pane.add(site_list, c);
- lat = new AltosUIMapPos(owner,
+ lat = new AltosUIMapPos(owner, this,
"Latitude:",
lat_hemi_names,
37.167833333);
pane.add(lat, c);
- lon = new AltosUIMapPos(owner,
+ lon = new AltosUIMapPos(owner, this,
"Longitude:",
lon_hemi_names,
-97.73975);