*
* 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_14;
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_14.*;
-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);
JToggleButton load_button;
JButton close_button;
+/*
JCheckBox[] maptypes = new JCheckBox[AltosMap.maptype_terrain - AltosMap.maptype_hybrid + 1];
+*/
JComboBox<Integer> min_zoom;
JComboBox<Integer> max_zoom;
pbar.setMaximum(max);
pbar.setValue(0);
pbar.setString("");
- map.clear_marks();
- map.add_mark(latitude, longitude, AltosLib.ao_flight_boost);
}
});
}
private int all_types() {
+/*
int all_types = 0;
for (int t = AltosMap.maptype_hybrid; t <= AltosMap.maptype_terrain; t++)
if (maptypes[t].isSelected())
all_types |= (1 << t);
return all_types;
+*/
+ return 1 << AltosMap.maptype_hybrid;
+ }
+
+ 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) {
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,
public AltosUIMapPreload(AltosUIFrame in_owner) {
owner = in_owner;
- Container pane = getContentPane();
+ Container pane = getScrollablePane();
GridBagConstraints c = new GridBagConstraints();
Insets i = new Insets(4,4,4,4);
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);
pane.add(close_button, c);
+/*
JLabel types_label = new JLabel("Map Types");
c.gridx = 2;
c.gridwidth = 2;
c.gridy = (type & 1) + 3;
pane.add(maptypes[type], c);
}
+*/
JLabel min_zoom_label = new JLabel("Minimum Zoom");
c.gridx = 4;