Changeset 3490 in josm for trunk/src/org/openstreetmap
- Timestamp:
- 2010-08-29T20:17:41+02:00 (14 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
r3407 r3490 36 36 import org.openstreetmap.josm.data.projection.Projection; 37 37 import org.openstreetmap.josm.gui.help.Helpful; 38 import org.openstreetmap.josm.gui.preferences.ProjectionPreference; 38 39 import org.openstreetmap.josm.tools.Predicate; 39 40 … … 116 117 117 118 public static String getDistText(double dist) { 118 SystemOfMeasurement som = SYSTEMS_OF_MEASUREMENT.get(Main.pref.get("system_of_measurement", "Metric")); 119 if (som == null) { 120 som = METRIC_SOM; 121 } 122 return som.getDistText(dist); 119 return getSystemOfMeasurement().getDistText(dist); 123 120 } 124 121 … … 718 715 } 719 716 717 public static SystemOfMeasurement getSystemOfMeasurement() { 718 SystemOfMeasurement som = SYSTEMS_OF_MEASUREMENT.get(ProjectionPreference.PROP_SYSTEM_OF_MEASUREMENT.get()); 719 if (som == null) 720 return METRIC_SOM; 721 return som; 722 } 723 720 724 public static class SystemOfMeasurement { 721 725 public final double aValue; -
trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
r3408 r3490 10 10 import java.awt.BasicStroke; 11 11 import java.awt.Color; 12 import java.awt.Dimension; 12 13 import java.awt.Graphics2D; 13 14 import java.awt.GridBagLayout; … … 18 19 import java.io.File; 19 20 import java.text.DateFormat; 20 import java.text.DecimalFormat;21 21 import java.util.ArrayList; 22 22 import java.util.Arrays; … … 40 40 import javax.swing.JPanel; 41 41 import javax.swing.JRadioButton; 42 import javax.swing.JScrollPane; 43 import javax.swing.SwingUtilities; 42 44 import javax.swing.filechooser.FileFilter; 43 45 … … 59 61 import org.openstreetmap.josm.gui.HelpAwareOptionPane; 60 62 import org.openstreetmap.josm.gui.MapView; 63 import org.openstreetmap.josm.gui.NavigatableComponent; 61 64 import org.openstreetmap.josm.gui.dialogs.LayerListDialog; 62 65 import org.openstreetmap.josm.gui.dialogs.LayerListPopup; … … 65 68 import org.openstreetmap.josm.gui.progress.NullProgressMonitor; 66 69 import org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor; 70 import org.openstreetmap.josm.gui.widgets.HtmlPanel; 67 71 import org.openstreetmap.josm.io.JpgImporter; 68 72 import org.openstreetmap.josm.tools.AudioUtil; … … 119 123 @Override 120 124 public Object getInfoComponent() { 121 return getToolTipText(); 125 StringBuilder info = new StringBuilder(); 126 127 if (data.attr.containsKey("name")) { 128 info.append(tr("Name: {0}", data.attr.get(GpxData.META_NAME))).append("<br>"); 129 } 130 131 if (data.attr.containsKey("desc")) { 132 info.append(tr("Description: {0}", data.attr.get(GpxData.META_DESC))).append("<br>"); 133 } 134 135 if (data.tracks.size() > 0) { 136 info.append("<table><thead align='center'><tr><td colspan='5'>" 137 + trn("{0} track", "{0} tracks", data.tracks.size(), data.tracks.size()) 138 + "</td></tr><tr align='center'><td>" + tr("Name") + "</td><td>" 139 + tr("Description") + "</td><td>" + tr("Timespan") 140 + "</td><td>" + tr("Length") + "</td><td>" + tr("URL") 141 + "</td></tr></thead>"); 142 143 for (GpxTrack trk : data.tracks) { 144 WayPoint earliest = null, latest = null; 145 146 info.append("<tr><td>"); 147 if (trk.getAttributes().containsKey("name")) { 148 info.append(trk.getAttributes().get("name")); 149 } 150 info.append("</td><td>"); 151 if (trk.getAttributes().containsKey("desc")) { 152 info.append(" ").append(trk.getAttributes().get("desc")); 153 } 154 info.append("</td><td>"); 155 156 for (GpxTrackSegment seg : trk.getSegments()) { 157 for (WayPoint pnt : seg.getWayPoints()) { 158 if (latest == null) { 159 latest = earliest = pnt; 160 } else { 161 if (pnt.compareTo(earliest) < 0) { 162 earliest = pnt; 163 } else { 164 latest = pnt; 165 } 166 } 167 } 168 } 169 170 if (earliest != null && latest != null) { 171 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); 172 String earliestDate = df.format(earliest.getTime()); 173 String latestDate = df.format(latest.getTime()); 174 175 if (earliestDate.equals(latestDate)) { 176 DateFormat tf = DateFormat.getTimeInstance(DateFormat.SHORT); 177 info.append(earliestDate).append(" "); 178 info.append(tf.format(earliest.getTime())).append(" - ").append(tf.format(latest.getTime())); 179 } else { 180 DateFormat dtf = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); 181 info.append(dtf.format(earliest.getTime())).append(" - ").append(dtf.format(latest.getTime())); 182 } 183 184 int diff = (int) (latest.time - earliest.time); 185 info.append(String.format(" (%d:%02d)", diff / 3600, (diff % 3600) / 60)); 186 } 187 188 info.append("</td><td>"); 189 info.append(NavigatableComponent.getSystemOfMeasurement().getDistText(trk.length())); 190 info.append("</td><td>"); 191 if (trk.getAttributes().containsKey("url")) { 192 info.append(trk.getAttributes().get("url")); 193 } 194 info.append("</td></tr>"); 195 } 196 197 info.append("</table><br><br>"); 198 199 } 200 201 info.append(tr("Length: {0}", NavigatableComponent.getSystemOfMeasurement().getDistText(data.length()))).append("<br>"); 202 203 info.append(trn("{0} route, ", "{0} routes, ", data.routes.size(), data.routes.size())).append( 204 trn("{0} waypoint", "{0} waypoints", data.waypoints.size(), data.waypoints.size())).append("<br>"); 205 206 final JScrollPane sp = new JScrollPane(new HtmlPanel(info.toString()), JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 207 sp.setPreferredSize(new Dimension(sp.getPreferredSize().width, 350)); 208 SwingUtilities.invokeLater(new Runnable() { 209 @Override 210 public void run() { 211 sp.getVerticalScrollBar().setValue(0); 212 } 213 }); 214 return sp; 122 215 } 123 216 … … 171 264 } 172 265 173 if (data.tracks.size() > 0) { 174 info.append("<table><thead align='center'><tr><td colspan='5'>" 175 + trn("{0} track", "{0} tracks", data.tracks.size(), data.tracks.size()) 176 + "</td></tr><tr align='center'><td>" + tr("Name") + "</td><td>" 177 + tr("Description") + "</td><td>" + tr("Timespan") 178 + "</td><td>" + tr("Length") + "</td><td>" + tr("URL") 179 + "</td></tr></thead>"); 180 181 for (GpxTrack trk : data.tracks) { 182 WayPoint earliest = null, latest = null; 183 184 info.append("<tr><td>"); 185 if (trk.getAttributes().containsKey("name")) { 186 info.append(trk.getAttributes().get("name")); 187 } 188 info.append("</td><td>"); 189 if (trk.getAttributes().containsKey("desc")) { 190 info.append(" ").append(trk.getAttributes().get("desc")); 191 } 192 info.append("</td><td>"); 193 194 for (GpxTrackSegment seg : trk.getSegments()) { 195 for (WayPoint pnt : seg.getWayPoints()) { 196 if (latest == null) { 197 latest = earliest = pnt; 198 } else { 199 if (pnt.compareTo(earliest) < 0) { 200 earliest = pnt; 201 } else { 202 latest = pnt; 203 } 204 } 205 } 206 } 207 208 if (earliest != null && latest != null) { 209 DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); 210 String earliestDate = df.format(earliest.getTime()); 211 String latestDate = df.format(latest.getTime()); 212 213 if (earliestDate.equals(latestDate)) { 214 DateFormat tf = DateFormat.getTimeInstance(DateFormat.SHORT); 215 info.append(earliestDate).append(" "); 216 info.append(tf.format(earliest.getTime())).append(" - ").append(tf.format(latest.getTime())); 217 } else { 218 DateFormat dtf = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); 219 info.append(dtf.format(earliest.getTime())).append(" - ").append(dtf.format(latest.getTime())); 220 } 221 222 int diff = (int) (latest.time - earliest.time); 223 info.append(String.format(" (%d:%02d)", diff / 3600, (diff % 3600) / 60)); 224 } 225 226 info.append("</td><td>"); 227 info.append(new DecimalFormat("#0.00").format(trk.length() / 1000) + "km"); 228 info.append("</td><td>"); 229 if (trk.getAttributes().containsKey("url")) { 230 info.append(trk.getAttributes().get("url")); 231 } 232 info.append("</td></tr>"); 233 } 234 235 info.append("</table><br><br>"); 236 237 } 238 239 info.append(tr("Length: ") + new DecimalFormat("#0.00").format(data.length() / 1000) + "km"); 266 info.append(trn("{0} track, ", "{0} tracks, ", data.tracks.size(), data.tracks.size())); 267 info.append(trn("{0} route, ", "{0} routes, ", data.routes.size(), data.routes.size())); 268 info.append(trn("{0} waypoint", "{0} waypoints", data.waypoints.size(), data.waypoints.size())).append("<br>"); 269 270 info.append(tr("Length: {0}", NavigatableComponent.getSystemOfMeasurement().getDistText(data.length()))); 240 271 info.append("<br>"); 241 242 info.append(trn("{0} route, ", "{0} routes, ", data.routes.size(), data.routes.size())).append(243 trn("{0} waypoint", "{0} waypoints", data.waypoints.size(), data.waypoints.size())).append("<br>");244 272 245 273 return info.append("</html>").toString(); -
trunk/src/org/openstreetmap/josm/gui/preferences/ProjectionPreference.java
r3473 r3490 54 54 } 55 55 }; 56 p rivatestatic final StringProperty PROP_SYSTEM_OF_MEASUREMENT = new StringProperty("system_of_measurement", "Metric");56 public static final StringProperty PROP_SYSTEM_OF_MEASUREMENT = new StringProperty("system_of_measurement", "Metric"); 57 57 private static final String[] unitsValues = (new ArrayList<String>(NavigatableComponent.SYSTEMS_OF_MEASUREMENT.keySet())).toArray(new String[0]); 58 58 private static final String[] unitsValuesTr = new String[unitsValues.length]; -
trunk/src/org/openstreetmap/josm/tools/Shortcut.java
r3488 r3490 236 236 for(Shortcut c : shortcuts.values()) 237 237 { 238 if(!c.shortText.equals("core:none")) 238 if(!c.shortText.equals("core:none")) { 239 239 l.add(c); 240 } 240 241 } 241 242 return l;
Note:
See TracChangeset
for help on using the changeset viewer.