Changeset 2711 in josm
- Timestamp:
- 2009-12-30T20:18:59+01:00 (15 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 81 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/AddNodeAction.java
r2626 r2711 60 60 } 61 61 62 63 62 public void actionPerformed(ActionEvent e) { 64 63 if (!isEnabled()) -
trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
r2685 r2711 34 34 * Does nothing if there either isn't a current map view or if there isn't a current data 35 35 * layer. 36 * 36 * 37 37 */ 38 38 public static void zoomToSelection() { -
trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
r2573 r2711 179 179 } 180 180 } 181 182 181 183 182 // create the new way and apply the new node list -
trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
r2565 r2711 176 176 return null; 177 177 178 179 178 Set<RelationToChildReference> relationToNodeReferences = RelationToChildReference.getRelationToChildReferences(nodes); 180 179 -
trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
r2628 r2711 434 434 } 435 435 436 437 436 return new SplitWayResult(new SequenceCommand(tr("Split way {0} into {1} parts", 438 437 way.getDisplayName(DefaultNameFormatter.getInstance()), -
trunk/src/org/openstreetmap/josm/actions/UpdateDataAction.java
r2598 r2711 42 42 43 43 public void updateLayer(OsmDataLayer layer) { 44 44 45 45 } 46 46 -
trunk/src/org/openstreetmap/josm/actions/search/SearchCompiler.java
r2701 r2711 670 670 } 671 671 672 673 674 672 private Match parseKV(String key, String value) throws ParseError { 675 673 if (value == null) { -
trunk/src/org/openstreetmap/josm/data/APIDataSet.java
r2598 r2711 213 213 /** 214 214 * Replies the number of objects to upload 215 * 215 * 216 216 * @return the number of objects to upload 217 217 */ -
trunk/src/org/openstreetmap/josm/data/Preferences.java
r2666 r2711 134 134 private final CopyOnWriteArrayList<PreferenceChangedListener> listeners = new CopyOnWriteArrayList<PreferenceChangedListener>(); 135 135 136 137 136 public void addPreferenceChangeListener(PreferenceChangedListener listener) { 138 137 if (listener != null) { … … 364 363 return put(key, Long.toString(value)); 365 364 } 366 367 365 368 366 /** -
trunk/src/org/openstreetmap/josm/data/coor/LatLon.java
r2699 r2711 203 203 * Replies a clone of this lat LatLon, rounded to OSM precisions, i.e. to 204 204 * MAX_SERVER_PRECISION 205 * 205 * 206 206 * @return a clone of this lat LatLon 207 207 */ … … 212 212 ); 213 213 } 214 215 214 216 215 @Override -
trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
r2682 r2711 30 30 import org.openstreetmap.josm.data.osm.event.TagsChangedEvent; 31 31 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent; 32 33 32 34 33 /** -
trunk/src/org/openstreetmap/josm/data/osm/NameFormatter.java
r2686 r2711 1 1 // License: GPL. For details, see LICENSE file. 2 2 package org.openstreetmap.josm.data.osm; 3 4 3 5 4 public interface NameFormatter { -
trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
r2696 r2711 154 154 /** 155 155 * Replies the collection of referring primitives for the primitives in <code>primitives</code>. 156 * 156 * 157 157 * @param primitives the collection of primitives. 158 158 * @return the collection of referring primitives for the primitives in <code>primitives</code>; … … 167 167 return ret; 168 168 } 169 170 169 171 170 /* mappaint data */ … … 249 248 /** 250 249 * Creates a new primitive for the given id. 251 * 250 * 252 251 * If allowNegativeId is set, provided id can be < 0 and will be set to primitive without any processing. 253 252 * If allowNegativeId is not set, then id will have to be 0 (in that case new unique id will be generated) or … … 571 570 * Replies a list of direction-dependent keys that make an object 572 571 * direction dependent. 573 * 572 * 574 573 * @return a list of direction-dependent keys that make an object 575 574 * direction dependent. … … 628 627 } 629 628 630 631 629 /** 632 630 * Replies the id of the changeset this primitive was last uploaded to. 633 631 * 0 if this primitive wasn't uploaded to a changeset yet or if the 634 632 * changeset isn't known. 635 * 633 * 636 634 * @return the id of the changeset this primitive was last uploaded to. 637 635 */ … … 640 638 } 641 639 642 643 640 /** 644 641 * Sets the changeset id of this primitive. Can't be set on a new 645 642 * primitive. 646 * 643 * 647 644 * @param changesetId the id. >= 0 required. 648 645 * @throws IllegalStateException thrown if this primitive is new. … … 1137 1134 } 1138 1135 1139 1140 1136 /** 1141 1137 * true if this object has direction dependent tags (e.g. oneway) -
trunk/src/org/openstreetmap/josm/data/osm/PrimitiveId.java
r2598 r2711 9 9 /** 10 10 * Replies true if this id represents a new primitive. 11 * 11 * 12 12 * @return true if this id represents a new primitive. 13 13 */ -
trunk/src/org/openstreetmap/josm/data/osm/User.java
r2638 r2711 120 120 /* 121 121 * Returns the list of user names 122 * 122 * 123 123 * @returns list of names 124 124 */ … … 129 129 /* 130 130 * Adds a user name to the list if it is not there, yet. 131 * 131 * 132 132 * @param name 133 133 */ … … 138 138 /* 139 139 * Returns true if the name is in the names list 140 * 140 * 141 141 * @param name 142 142 */ -
trunk/src/org/openstreetmap/josm/data/osm/event/AbstractDatasetChangedEvent.java
r2655 r2711 6 6 import org.openstreetmap.josm.data.osm.DataSet; 7 7 import org.openstreetmap.josm.data.osm.OsmPrimitive; 8 9 8 10 9 public abstract class AbstractDatasetChangedEvent { -
trunk/src/org/openstreetmap/josm/data/osm/event/ChangesetIdChangedEvent.java
r2655 r2711 6 6 import org.openstreetmap.josm.data.osm.DataSet; 7 7 import org.openstreetmap.josm.data.osm.OsmPrimitive; 8 9 8 10 9 public class ChangesetIdChangedEvent extends AbstractDatasetChangedEvent { -
trunk/src/org/openstreetmap/josm/data/osm/event/DataChangedEvent.java
r2652 r2711 7 7 import org.openstreetmap.josm.data.osm.DataSet; 8 8 import org.openstreetmap.josm.data.osm.OsmPrimitive; 9 10 9 11 10 public class DataChangedEvent extends AbstractDatasetChangedEvent { -
trunk/src/org/openstreetmap/josm/data/osm/event/DataSetListener.java
r2655 r2711 21 21 22 22 package org.openstreetmap.josm.data.osm.event; 23 24 23 25 24 /** -
trunk/src/org/openstreetmap/josm/data/osm/event/DatasetEventManager.java
r2658 r2711 12 12 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 13 13 14 15 14 /** 16 15 * This class allows to add DatasetListener to currently active dataset. If active … … 18 17 * (it's no longer necessary to register for layer events and reregister every time 19 18 * new layer is selected) 20 * 19 * 21 20 * Events in EDT are supported, see {@link #addDatasetListener(DataSetListener, boolean)} 22 21 * -
trunk/src/org/openstreetmap/josm/data/osm/event/PrimitivesAddedEvent.java
r2645 r2711 32 32 33 33 /** 34 * 34 * 35 35 * @return True if primitive was in dataset before (so it's not really added), but it was incomplete 36 36 */ -
trunk/src/org/openstreetmap/josm/data/osm/event/PrimitivesRemovedEvent.java
r2645 r2711 32 32 33 33 /** 34 * 34 * 35 35 * @return True if primitive wasn't really removed from the dataset, it only become incomplete again 36 36 */ -
trunk/src/org/openstreetmap/josm/data/osm/history/HistoryOsmPrimitive.java
r2686 r2711 192 192 } 193 193 194 195 196 194 @Override 197 195 public int hashCode() { -
trunk/src/org/openstreetmap/josm/data/osm/history/HistoryWay.java
r2686 r2711 80 80 /** 81 81 * Replies true if this way is closed. 82 * 82 * 83 83 * @return true if this way is closed. 84 84 */ -
trunk/src/org/openstreetmap/josm/data/osm/history/RelationMember.java
r2561 r2711 7 7 8 8 /** 9 * Represents a relation member in the thecontext of a historical view on9 * Represents a relation member in the context of a historical view on 10 10 * OSM data. 11 11 * -
trunk/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
r2689 r2711 208 208 /** 209 209 * Builds a default tooltip text for the primitive <code>primitive</code>. 210 * 210 * 211 211 * @param primitive the primitmive 212 212 * @return the tooltip text … … 244 244 } 245 245 246 247 246 /** 248 247 * Decorates the name of primitive with its id, if the preference 249 248 * <tt>osm-primitives.showid</tt> is set. 250 * 249 * 251 250 * The id is append to the {@see StringBuilder} passed in in <code>name</code>. 252 251 * … … 259 258 } 260 259 } 261 262 260 263 261 /** … … 324 322 return sb.toString(); 325 323 } 326 327 324 328 325 /** … … 373 370 /** 374 371 * Builds a default tooltip text for an HistoryOsmPrimitive <code>primitive</code>. 375 * 372 * 376 373 * @param primitive the primitmive 377 374 * @return the tooltip text -
trunk/src/org/openstreetmap/josm/gui/ExtendedDialog.java
r2662 r2711 193 193 194 194 private boolean setupDone = false; 195 195 196 196 /** 197 197 * This is called by showDialog(). -
trunk/src/org/openstreetmap/josm/gui/MapView.java
r2668 r2711 89 89 /** 90 90 * Removes a layer change listener 91 * 91 * 92 92 * @param listener the listener. Ignored if null or already registered. 93 93 */ … … 100 100 } 101 101 102 103 104 102 /** 105 103 * Adds a layer change listener 106 * 104 * 107 105 * @param listener the listener. Ignored if null or already registered. 108 106 */ … … 303 301 } 304 302 305 306 303 /** 307 304 * Determines the next active data layer according to the following -
trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberTableCellEditor.java
r2512 r2711 14 14 15 15 /** 16 * {@see TableCellEditor} for the therole column in a table for {@see RelationMember}s.16 * {@see TableCellEditor} for the role column in a table for {@see RelationMember}s. 17 17 * 18 18 */ -
trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
r2710 r2711 124 124 } 125 125 126 127 128 126 @Override 129 127 public void tearDown() { -
trunk/src/org/openstreetmap/josm/gui/dialogs/DialogsPanel.java
r2613 r2711 51 51 * Invoke before the panel is discarded. This will in turn call {@see ToggleDialog#tearDown()} 52 52 * on every dialog. 53 * 53 * 54 54 */ 55 55 public void tearDown() { -
trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
r2710 r2711 128 128 buttonPanel.add(new SideButton(mergeLayerAction)); 129 129 130 131 130 //-- delete layer action 132 131 DeleteLayerAction deleteLayerAction = new DeleteLayerAction(); … … 772 771 773 772 /** 774 * Replies true if the thecurrently selected layers can move up773 * Replies true if the currently selected layers can move up 775 774 * by one position 776 775 * 777 * @return true if the thecurrently selected layers can move up776 * @return true if the currently selected layers can move up 778 777 * by one position 779 778 */ -
trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
r2710 r2711 264 264 265 265 /** 266 * Closes the thedetached dialog if this toggle dialog is currently displayed266 * Closes the detached dialog if this toggle dialog is currently displayed 267 267 * in a detached dialog. 268 268 * -
trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
r2710 r2711 210 210 JOptionPane.showMessageDialog( 211 211 Main.parent, 212 tr("<html>Failed to create an URL because the encoding ''{0}'' was<br>"212 tr("<html>Failed to create an URL because the encoding ''{0}''<br>" 213 213 + "was missing on this system.</html>", "UTF-8"), 214 214 tr("Missing encoding"), -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
r2689 r2711 59 59 * downloading, querying, closing changesets, in addition to removing changesets from 60 60 * the local cache. 61 * 61 * 62 62 */ 63 63 public class ChangesetCacheManager extends JFrame { … … 68 68 /** 69 69 * Replies the unique instance of the changeset cache manager 70 * 70 * 71 71 * @return the unique instance of the changeset cache manager 72 72 */ … … 81 81 * Hides and destroys the unique instance of the changeset cache 82 82 * manager. 83 * 83 * 84 84 */ 85 85 public static void destroyInstance() { … … 91 91 } 92 92 93 94 93 private ChangesetCacheManagerModel model; 95 94 private JSplitPane spContent; … … 102 101 private JTable tblChangesets; 103 102 104 105 103 /** 106 104 * Creates the various models required … … 119 117 /** 120 118 * builds the toolbar panel in the heading of the dialog 121 * 119 * 122 120 * @return the toolbar panel 123 121 */ … … 135 133 /** 136 134 * builds the button panel in the footer of the dialog 137 * 135 * 138 136 * @return the button row pane 139 137 */ … … 156 154 /** 157 155 * Builds the panel with the changeset details 158 * 156 * 159 157 * @return the panel with the changeset details 160 158 */ … … 181 179 tp.setToolTipTextAt(0, tr("Display the basic properties of the changeset")); 182 180 tp.setTitleAt(1, tr("Tags")); 183 tp.setToolTipTextAt(1, tr("Display the t he tags of the changeset"));181 tp.setToolTipTextAt(1, tr("Display the tags of the changeset")); 184 182 tp.setTitleAt(2, tr("Content")); 185 183 tp.setToolTipTextAt(2, tr("Display the objects created, updated, and deleted by the changeset")); … … 191 189 /** 192 190 * builds the content panel of the dialog 193 * 191 * 194 192 * @return the content panel 195 193 */ … … 210 208 * Builds the table with actions which can be applied to the currently visible changesets 211 209 * in the changeset table. 212 * 210 * 213 211 * @return 214 212 */ … … 241 239 /** 242 240 * Builds the panel with the table of changesets 243 * 241 * 244 242 * @return the panel with the table of changesets 245 243 */ … … 266 264 } 267 265 268 269 266 protected void build() { 270 267 setTitle(tr(("Changeset Management Dialog"))); … … 289 286 addWindowListener(new WindowEventHandler()); 290 287 } 291 292 288 293 289 public ChangesetCacheManager() { … … 594 590 * Selects the changesets in <code>changests</code>, provided the 595 591 * respective changesets are already present in the local changeset cache. 596 * 592 * 597 593 * @param ids the collection of changesets. If null, the selection is cleared. 598 594 */ … … 608 604 * Selects the changesets with the ids in <code>ids</code>, provided the 609 605 * respective changesets are already present in the local changeset cache. 610 * 606 * 611 607 * @param ids the collection of ids. If null, the selection is cleared. 612 608 */ -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManagerModel.java
r2689 r2711 49 49 * Sets the changeset currently displayed in the detail view. Fires a property change event 50 50 * for the property {@see #CHANGESET_IN_DETAIL_VIEW_PROP} if necessary. 51 * 51 * 52 52 * @param cs the changeset currently displayed in the detail view. 53 53 */ … … 62 62 /** 63 63 * Replies true if there is at least one selected changeset 64 * 64 * 65 65 * @return true if there is at least one selected changeset 66 66 */ … … 71 71 /** 72 72 * Replies the list of selected changesets 73 * 73 * 74 74 * @return the list of selected changesets 75 75 */ … … 87 87 /** 88 88 * Replies a set of ids of the selected changesets 89 * 89 * 90 90 * @return a set of ids of the selected changesets 91 91 */ … … 100 100 /** 101 101 * Selects the changesets in <code>selected</code>. 102 * 102 * 103 103 * @param selected the collection of changesets to select. Ignored if empty. 104 104 */ … … 117 117 /** 118 118 * Selects the changeset displayed at row <code>row</code> 119 * 119 * 120 120 * @param row the row. Ignored if < 0 or >= {@see #getRowCount()} 121 121 */ -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheSortSpecification.java
r2689 r2711 17 17 } 18 18 19 20 19 } -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheTableColumnModel.java
r2689 r2711 9 9 /** 10 10 * The column model for the changeset table 11 * 11 * 12 12 */ 13 13 public class ChangesetCacheTableColumnModel extends DefaultTableColumnModel { -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentDownloadTask.java
r2689 r2711 43 43 /** 44 44 * Initialize the task with a collection of changeset ids to download 45 * 45 * 46 46 * @param ids the collection of ids. May be null. 47 47 */ … … 61 61 /** 62 62 * Creates a download task for a single changeset 63 * 63 * 64 64 * @param changesetId the changeset id. >0 required. 65 65 * @throws IllegalArgumentException thrown if changesetId <= 0 … … 75 75 * Creates a download task for a collection of changesets. null values and id <=0 in 76 76 * the collection are sillently discarded. 77 * 77 * 78 78 * @param changesetIds the changeset ids. Empty collection assumed, if null. 79 79 */ … … 85 85 /** 86 86 * Creates a download task for a single changeset 87 * 87 * 88 88 * @param parent the parent component for the {@see PleaseWaitDialog}. Must not be null. 89 89 * @param changesetId the changeset id. >0 required. … … 101 101 * Creates a download task for a collection of changesets. null values and id <=0 in 102 102 * the collection are sillently discarded. 103 * 103 * 104 104 * @param parent the parent component for the {@see PleaseWaitDialog}. Must not be null. 105 105 * @param changesetIds the changeset ids. Empty collection assumed, if null. … … 114 114 * Replies true if the local {@see ChangesetCache} already includes the changeset with 115 115 * id <code>changesetId</code>. 116 * 116 * 117 117 * @param changsetId the changeset id 118 118 * @return true if the local {@see ChangesetCache} already includes the changeset with … … 126 126 * Downloads the changeset with id <code>changesetId</code> (only "header" 127 127 * information, no content) 128 * 128 * 129 129 * @param changesetId the changeset id 130 130 * @throws OsmTransferException thrown if something went wrong -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
r2689 r2711 58 58 * It listens to property change events for {@see ChangesetCacheManagerModel#CHANGESET_IN_DETAIL_VIEW_PROP} 59 59 * and updates its view accordingly. 60 * 60 * 61 61 */ 62 62 public class ChangesetContentPanel extends JPanel implements PropertyChangeListener{ … … 167 167 setCurrentChangeset(cs); 168 168 } 169 170 169 171 170 /** -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableCellRenderer.java
r2689 r2711 55 55 } 56 56 57 58 57 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, 59 58 int row, int column) { -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableColumnModel.java
r2689 r2711 11 11 /** 12 12 * The column model for the changeset content 13 * 13 * 14 14 */ 15 15 public class ChangesetContentTableColumnModel extends DefaultTableColumnModel { -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentTableModel.java
r2689 r2711 32 32 /** 33 33 * Replies true if there is at least one selected primitive in the table model 34 * 34 * 35 35 * @return true if there is at least one selected primitive in the table model 36 36 */ … … 64 64 * Populates the model with the content of a model. If ds is null, the 65 65 * table is cleared. 66 * 66 * 67 67 * @param ds the changeset content. 68 68 */ … … 133 133 * The type used internally to keep information about {@see HistoryOsmPrimitive} 134 134 * with their {@see ChangesetModificationType}. 135 * 135 * 136 136 */ 137 137 static private class ChangesetContentEntry implements ChangesetDataSetEntry{ -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java
r2689 r2711 45 45 * This panel displays the properties of the currently selected changeset in the 46 46 * {@see ChangesetCacheManager}. 47 * 47 * 48 48 */ 49 49 public class ChangesetDetailPanel extends JPanel implements PropertyChangeListener{ … … 315 315 } 316 316 317 318 317 /** 319 318 * Updates the current changeset from the OSM server … … 348 347 349 348 /** 350 * Selects the primitives in the content of this changeset in the thecurrent349 * Selects the primitives in the content of this changeset in the current 351 350 * data layer. 352 * 351 * 353 352 */ 354 353 class SelectInCurrentLayerAction extends AbstractAction implements EditLayerChangeListener{ … … 417 416 418 417 /** 419 * Zooms to the primitives in the content of this changeset in the thecurrent418 * Zooms to the primitives in the content of this changeset in the current 420 419 * data layer. 421 * 420 * 422 421 */ 423 422 class ZoomInCurrentLayerAction extends AbstractAction implements EditLayerChangeListener{ -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetHeaderDownloadTask.java
r2689 r2711 29 29 * This is an asynchronous task for downloading a collection of changests from the OSM 30 30 * server. 31 * 31 * 32 32 * The task only downloads the changeset properties without the changeset content. It 33 33 * updates the global {@see ChangesetCache}. 34 * 34 * 35 35 */ 36 36 public class ChangesetHeaderDownloadTask extends PleaseWaitRunnable implements ChangesetDownloadTask{ … … 38 38 /** 39 39 * Builds a download task from for a collection of changesets. 40 * 40 * 41 41 * Ignores null values and changesets with {@see Changeset#isNew()} == true. 42 * 42 * 43 43 * @param changesets the collection of changesets. Assumes an empty collection if null. 44 44 * @return the download task … … 50 50 /** 51 51 * Builds a download task from for a collection of changesets. 52 * 52 * 53 53 * Ignores null values and changesets with {@see Changeset#isNew()} == true. 54 * 54 * 55 55 * @param parent the parent component relative to which the {@see PleaseWaitDialog} is displayed. 56 56 * Must not be null. … … 78 78 79 79 } 80 81 80 82 81 private Set<Integer> idsToDownload; … … 104 103 * Creates the download task for a collection of changeset ids. Uses a {@see PleaseWaitDialog} 105 104 * whose parent is {@see Main#parent}. 106 * 105 * 107 106 * Null ids or or ids <= 0 in the id collection are ignored. 108 * 107 * 109 108 * @param ids the collection of ids. Empty collection assumed if null. 110 109 */ … … 118 117 * Creates the download task for a collection of changeset ids. Uses a {@see PleaseWaitDialog} 119 118 * whose parent is the parent window of <code>dialogParent</code>. 120 * 119 * 121 120 * Null ids or or ids <= 0 in the id collection are ignored. 122 * 121 * 123 122 * @param dialogParent the parent reference component for the {@see PleaseWaitDialog}. Must not be null. 124 123 * @param ids the collection of ids. Empty collection assumed if null. -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetInSelectionListModel.java
r2689 r2711 23 23 } 24 24 25 26 25 /* ---------------------------------------------------------------------------- */ 27 26 /* Interface LayerChangeListener */ -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetListModel.java
r2655 r2711 183 183 /** 184 184 * Replies true if there is at least one selected open changeset 185 * 185 * 186 186 * @return true if there is at least one selected open changeset 187 187 */ … … 192 192 /** 193 193 * Replies the selected open changesets 194 * 194 * 195 195 * @return the selected open changesets 196 196 */ -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetTagsPanel.java
r2689 r2711 16 16 /** 17 17 * This panel displays the tags of the currently selected changeset in the {@see ChangesetCacheManager} 18 * 18 * 19 19 */ 20 20 public class ChangesetTagsPanel extends JPanel implements PropertyChangeListener{ -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetsInActiveDataLayerListModel.java
r2689 r2711 21 21 /** 22 22 * This is the list model for the list of changeset in the current edit layer. 23 * 23 * 24 24 */ 25 25 public class ChangesetsInActiveDataLayerListModel extends ChangesetListModel implements DataSetListener, EditLayerChangeListener { -
trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/SingleChangesetDownloadPanel.java
r2689 r2711 26 26 * This panel allows to enter the ID of single changeset and to download 27 27 * the respective changeset. 28 * 28 * 29 29 */ 30 30 public class SingleChangesetDownloadPanel extends JPanel { … … 63 63 * Replies the changeset id entered in this panel. 0 if no changeset id 64 64 * or an invalid changeset id is currently entered. 65 * 65 * 66 66 * @return the changeset id entered in this panel 67 67 */ … … 117 117 /** 118 118 * Validator for a changeset ID entered in a {@see JTextComponent}. 119 * 119 * 120 120 */ 121 121 static private class ChangesetIdValidator extends AbstractTextComponentValidator { -
trunk/src/org/openstreetmap/josm/gui/dialogs/properties/ListOfUsedTags.java
r2660 r2711 35 35 36 36 /** 37 * 37 * 38 38 * @param key 39 39 * @return List of used values or empty list if key is not used -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/DownloadRelationTask.java
r2563 r2711 36 36 /** 37 37 * Creates the download task 38 * 38 * 39 39 * @param relations a collection of relations. Must not be null. 40 40 * @param layer the layer which data is to be merged into -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
r2700 r2711 184 184 /** 185 185 * Creates the toolbar 186 * 186 * 187 187 * @return the toolbar 188 188 */ … … 487 487 tb.setFloatable(false); 488 488 489 490 489 // -- add at end action 491 490 AddSelectedAtEndAction addSelectedAtEndAction = new AddSelectedAtEndAction(); -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
r2700 r2711 315 315 /** 316 316 * Replies the set of incomplete primitives 317 * 317 * 318 318 * @return the set of incomplete primitives 319 319 */ … … 330 330 /** 331 331 * Replies the set of selected incomplete primitives 332 * 332 * 333 333 * @return the set of selected incomplete primitives 334 334 */ … … 345 345 /** 346 346 * Replies true if at least one the relation members is incomplete 347 * 347 * 348 348 * @return true if at least one the relation members is incomplete 349 349 */ … … 358 358 /** 359 359 * Replies true if at least one of the selected members is incomplete 360 * 360 * 361 361 * @return true if at least one of the selected members is incomplete 362 362 */ … … 632 632 * Replies true if <code>primitive</code> is currently selected in the layer this 633 633 * model is attached to 634 * 634 * 635 635 * @param primitive the primitive 636 636 * @return true if <code>primitive</code> is currently selected in the layer this -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java
r2563 r2711 203 203 } 204 204 205 206 205 /* ----------------------------------------------------------------------- */ 207 206 /* property change support */ -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableCellRenderer.java
r2563 r2711 58 58 } 59 59 60 61 60 protected void renderPrimitive(OsmPrimitive primitive) { 62 61 setIcon(ImageProvider.get(primitive.getPrimitiveId().getType())); -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java
r2621 r2711 105 105 /** 106 106 * Replies the primitive at row <code>row</code> in this model 107 * 107 * 108 108 * @param row the row 109 109 * @return the primitive at row <code>row</code> in this model -
trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
r2689 r2711 26 26 27 27 /** 28 * Loads the theobject history of an collection of objects from the28 * Loads the object history of an collection of objects from the 29 29 * server. 30 30 * … … 58 58 /** 59 59 * Creates a new task 60 * 60 * 61 61 * @param parent the component to be used as reference to find the parent for {@see PleaseWaitDialog}. 62 62 * Must not be null. -
trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java
r2618 r2711 82 82 83 83 private boolean canceled = false; 84 85 84 86 85 /** … … 183 182 pnlBasicUploadSettings.addPropertyChangeListener(pnlTagSettings); 184 183 185 186 184 // make sure the the configuration panels listen to each other 187 185 // changes … … 240 238 * @param toUpload the dataset with the objects to upload. If null, assumes the empty 241 239 * set of objects to upload 242 * 240 * 243 241 */ 244 242 public void setUploadedPrimitives(APIDataSet toUpload) { … … 299 297 /** 300 298 * Replies the {@see UploadStrategySpecification} the user entered in the dialog. 301 * 299 * 302 300 * @return the {@see UploadStrategySpecification} the user entered in the dialog. 303 301 */ -
trunk/src/org/openstreetmap/josm/gui/io/UploadLayerTask.java
r2599 r2711 47 47 /** 48 48 * Creates the upload task 49 * 49 * 50 50 * @param strategy the upload strategy specification 51 51 * @param layer the layer. Must not be null. -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
r2702 r2711 77 77 import org.xml.sax.SAXException; 78 78 79 80 79 /** This class displays the window to select the GPX file and the offset (timezone + delta). 81 80 * Then it correlates the images of the layer with that GPX file. … … 546 545 panelTf.add(panelCb, gbc); 547 546 548 549 547 gbc = GBC.eol().fill(GBC.HORIZONTAL).insets(0,0,0,12); 550 548 gbc.gridx = 0; 551 549 gbc.gridy = y++; 552 550 panelTf.add(new JSeparator(SwingConstants.HORIZONTAL), gbc); 553 554 551 555 552 gbc = GBC.std(); … … 664 661 outerPanel.setLayout(new BorderLayout()); 665 662 outerPanel.add(statusBar, BorderLayout.PAGE_END); 666 667 663 668 664 syncDialog = new ExtendedDialog( … … 766 762 } 767 763 768 769 764 for (ImageEntry ie : yLayer.data) { 770 765 ie.applyTmp(); … … 772 767 773 768 yLayer.updateBufferAndRepaint(); 774 775 769 776 770 break; … … 883 877 tfTimezone.getDocument().addDocumentListener(statusBarListener); 884 878 tfOffset.getDocument().addDocumentListener(statusBarListener); 885 886 887 879 888 880 lblMatches.setText(statusBarText.getText() + tr("<br>(Time difference of {0} days)", Math.abs(dayOffset))); … … 1229 1221 } 1230 1222 1231 1232 1223 private String formatTimezone(double timezone) { 1233 1224 StringBuffer ret = new StringBuffer(); … … 1252 1243 1253 1244 String error = tr("Error while parsing timezone.\nExpected format: {0}", "+H:MM"); 1254 1255 1245 1256 1246 if (timezone.length() == 0) -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
r2662 r2711 73 73 List<ImageEntry> data; 74 74 GpxLayer gpxLayer; 75 75 76 76 private Icon icon = ImageProvider.get("dialogs/geoimage/photo-marker"); 77 77 private Icon selectedIcon = ImageProvider.get("dialogs/geoimage/photo-marker-selected"); … … 709 709 } 710 710 } 711 712 public void loadThumbs() { 711 712 public void loadThumbs() { 713 713 if (useThumbs && !thumbsLoaded) { 714 714 thumbsLoaded = true; … … 719 719 } 720 720 } 721 721 722 722 public void updateBufferAndRepaint() { 723 723 updateOffscreenBuffer = true; -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageDisplay.java
r2602 r2711 52 52 53 53 private String osdText = null; 54 54 55 55 private static int DRAG_BUTTON = Main.pref.getBoolean("geoimage.agpifo-style-drag-and-zoom", false) ? 1 : 3; 56 56 private static int ZOOM_BUTTON = DRAG_BUTTON == 1 ? 3 : 1; … … 130 130 131 131 // Calculate the mouse cursor position in image coordinates, so that we can center the zoom 132 // on that mouse position. 133 // To avoid issues when the user tries to zoom in on the image borders, this point is not calculated 132 // on that mouse position. 133 // To avoid issues when the user tries to zoom in on the image borders, this point is not calculated 134 134 // again if there was less than 1.5seconds since the last event. 135 135 if (e.getWhen() - lastTimeForMousePoint > 1500 || mousePointInImg == null) { … … 536 536 return calculateDrawImageRectangle(visibleRect, new Rectangle(0, 0, getSize().width, getSize().height)); 537 537 } 538 538 539 539 /** 540 540 * calculateDrawImageRectangle -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
r2663 r2711 115 115 } 116 116 } 117 -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
r2662 r2711 219 219 } 220 220 221 222 221 private GeoImageLayer currentLayer = null; 223 222 private ImageEntry currentEntry = null; -
trunk/src/org/openstreetmap/josm/gui/layer/geoimage/JpegFileFilter.java
r2566 r2711 18 18 return instance; 19 19 } 20 20 21 21 @Override public boolean accept(File f) { 22 22 if (f.isDirectory()) { … … 32 32 } 33 33 } 34 -
trunk/src/org/openstreetmap/josm/gui/preferences/LanguagePreference.java
r2559 r2711 99 99 /** 100 100 * Asynchronously loads available translations 101 * 101 * 102 102 */ 103 103 protected void reloadAvailableTranslations() { … … 107 107 /** 108 108 * Asynchronous task to lookup the available translations. 109 * 109 * 110 110 */ 111 111 private class AvailableTranslationsLoader extends PleaseWaitRunnable { -
trunk/src/org/openstreetmap/josm/gui/preferences/ProxyPreferences.java
r2648 r2711 30 30 31 31 public class ProxyPreferences implements PreferenceSetting { 32 33 34 32 35 33 public static class Factory implements PreferenceSettingFactory { -
trunk/src/org/openstreetmap/josm/gui/tagging/TagCellEditor.java
r2599 r2711 47 47 * to edit the key of a tag. In this case the auto completion list is 48 48 * initialized with the set of standard key values and the set of current key 49 * values from the thecurrent JOSM data set. Keys already present in the49 * values from the current JOSM data set. Keys already present in the 50 50 * current tag model are removed from the auto completion list. 51 51 * -
trunk/src/org/openstreetmap/josm/io/CacheFiles.java
r2606 r2711 57 57 this(ident, true); 58 58 } 59 59 60 60 public CacheFiles(String ident, boolean isPlugin) { 61 61 String pref = isPlugin ? Main.pref.getPluginsDirFile().getPath() : Main.pref.getPreferencesDir(); 62 62 63 63 boolean dir_writeable; 64 64 this.ident = ident; -
trunk/src/org/openstreetmap/josm/io/Capabilities.java
r2599 r2711 77 77 * don't include this parameter or if the parameter value is illegal (not a number, 78 78 * a negative number) 79 * 79 * 80 80 * @return the max number of objects in a changeset 81 81 */ -
trunk/src/org/openstreetmap/josm/io/ChangesetClosedException.java
r2599 r2711 51 51 /** 52 52 * Replies true if <code>errorHeader</code> matches with {@see #ERROR_HEADER_PATTERN} 53 * 53 * 54 54 * @param errorHeader the error header 55 55 * @return true if <code>errorHeader</code> matches with {@see #ERROR_HEADER_PATTERN} … … 91 91 /** 92 92 * Creates the exception with the given <code>errorHeader</code> 93 * 93 * 94 94 * @param errorHeader the error header 95 95 */ … … 103 103 * Creates the exception with the given error header and the given 104 104 * source. 105 * 105 * 106 106 * @param errorHeader the error header 107 107 * @param source the source for the exception … … 115 115 /** 116 116 * Creates the exception 117 * 117 * 118 118 * @param changesetId the id if the closed changeset 119 119 * @param closedOn the date the changeset was closed on … … 129 129 /** 130 130 * Replies the id of the changeset which was closed 131 * 131 * 132 132 * @return the id of the changeset which was closed 133 133 */ … … 138 138 /** 139 139 * Replies the date the changeset was closed 140 * 140 * 141 141 * @return the date the changeset was closed. May be null if the date isn't known. 142 142 */ … … 147 147 /** 148 148 * Replies the source where the exception was thrown 149 * 149 * 150 150 * @return the source 151 151 */ -
trunk/src/org/openstreetmap/josm/io/ChangesetQuery.java
r2688 r2711 20 20 * Replies a changeset query object from the query part of a OSM API URL for querying 21 21 * changesets. 22 * 22 * 23 23 * @param query the query part 24 24 * @return the query object 25 25 * @throws ChangesetQueryUrlException thrown if query doesn't consist of valid query parameters 26 * 26 * 27 27 */ 28 28 static public ChangesetQuery buildFromUrlQuery(String query) throws ChangesetQueryUrlException{ … … 48 48 /** 49 49 * Restricts the query to changesets owned by the user with id <code>uid</code>. 50 * 50 * 51 51 * @param uid the uid of the user. >0 expected. 52 52 * @return the query object with the applied restriction … … 64 64 /** 65 65 * Restricts the query to changesets owned by the user with user name <code>username</code>. 66 * 66 * 67 67 * Caveat: for historical reasons the username might not be unique! It is recommended to use 68 68 * {@see #forUser(int)} to restrict the query to a specific user. 69 * 69 * 70 70 * @param username the username. Must not be null. 71 71 * @return the query object with the applied restriction … … 83 83 * Replies true if this query is restricted to user whom we only know the user name 84 84 * for. 85 * 85 * 86 86 * @return true if this query is restricted to user whom we only know the user name 87 87 * for … … 94 94 * Replies the user name which this query is restricted to. null, if this query isn't 95 95 * restricted to a user name, i.e. if {@see #isRestrictedToPartiallyIdentifiedUser()} is false. 96 * 96 * 97 97 * @return the user name which this query is restricted to 98 98 */ … … 103 103 /** 104 104 * Replies true if this query is restricted to user whom know the user id for. 105 * 105 * 106 106 * @return true if this query is restricted to user whom know the user id for 107 107 */ … … 112 112 /** 113 113 * Replies a query which is restricted to a bounding box. 114 * 114 * 115 115 * @param minLon min longitude of the bounding box. Valid longitude value expected. 116 116 * @param minLat min latitude of the bounding box. Valid latitude value expected. 117 117 * @param maxLon max longitude of the bounding box. Valid longitude value expected. 118 118 * @param maxLat max latitude of the bounding box. Valid latitude value expected. 119 * 119 * 120 120 * @return the restricted changeset query 121 121 * @throws IllegalArgumentException thrown if either of the parameters isn't a valid longitude or … … 137 137 /** 138 138 * Replies a query which is restricted to a bounding box. 139 * 139 * 140 140 * @param min the min lat/lon coordinates of the bounding box. Must not be null. 141 141 * @param max the max lat/lon coordiantes of the bounding box. Must not be null. 142 * 142 * 143 143 * @return the restricted changeset query 144 144 * @throws IllegalArgumentException thrown if min is null … … 154 154 /** 155 155 * Replies a query which is restricted to a bounding box given by <code>bbox</code>. 156 * 156 * 157 157 * @param bbox the bounding box. Must not be null. 158 158 * @return the changeset query … … 168 168 * Restricts the result to changesets which have been closed after the date given by <code>d</code>. 169 169 * <code>d</code> d is a date relative to the current time zone. 170 * 170 * 171 171 * @param d the date . Must not be null. 172 172 * @return the restricted changeset query … … 183 183 * habe been created before <code>createdBefore</code>. Both dates are expressed relative to the current 184 184 * time zone. 185 * 185 * 186 186 * @param closedAfter only reply changesets closed after this date. Must not be null. 187 187 * @param createdBefore only reply changesets created before this date. Must not be null. … … 201 201 * Restricts the result to changesets which are or aren't open, depending on the value of 202 202 * <code>isOpen</code> 203 * 203 * 204 204 * @param isOpen whether changesets should or should not be open 205 205 * @return the restricted changeset query … … 213 213 * Restricts the result to changesets which are or aren't closed, depending on the value of 214 214 * <code>isClosed</code> 215 * 215 * 216 216 * @param isClosed whether changesets should or should not be open 217 217 * @return the restricted changeset query … … 224 224 /** 225 225 * Replies the query string to be used in a query URL for the OSM API. 226 * 226 * 227 227 * @return the query string 228 228 */ … … 268 268 return sb.toString(); 269 269 } 270 271 270 272 271 public static class ChangesetQueryUrlException extends Exception { … … 408 407 * Parses the changeset query given as URL query parameters and replies a 409 408 * {@see ChangesetQuery} 410 * 409 * 411 410 * <code>query</code> is the query part of a API url for querying changesets, 412 411 * see <a href="http://wiki.openstreetmap.org/wiki/API_v0.6#Query:_GET_.2Fapi.2F0.6.2Fchangesets">OSM API</a>. 413 * 412 * 414 413 * Example for an query string:<br> 415 414 * <pre> 416 415 * uid=1234&open=true 417 416 * </pre> 418 * 417 * 419 418 * @param query the query string. If null, an empty query (identical to a query for all changesets) is 420 419 * assumed -
trunk/src/org/openstreetmap/josm/io/DiffResultProcessor.java
r2604 r2711 53 53 /** 54 54 * Creates a diff result reader 55 * 55 * 56 56 * @param primitives the collection of primitives which have been uploaded. If null, 57 57 * assumes an empty collection. … … 67 67 /** 68 68 * Parse the response from a diff upload to the OSM API. 69 * 69 * 70 70 * @param diffUploadResponse the response. Must not be null. 71 71 * @param progressMonitor a progress monitor. Defaults to {@see NullProgressMonitor#INSTANCE} if null 72 72 * @throws IllegalArgumentException thrown if diffUploadRequest is null 73 73 * @throws OsmDataParsingException thrown if the diffUploadRequest can't be parsed successfully 74 * 74 * 75 75 */ 76 76 public void parse(String diffUploadResponse, ProgressMonitor progressMonitor) throws OsmDataParsingException { … … 99 99 /** 100 100 * Postprocesses the diff result read and parsed from the server. 101 * 101 * 102 102 * Uploaded objects are assigned their new id (if they got assigned a new 103 103 * id by the server), their new version (if the version was incremented), 104 104 * and the id of the changeset to which they were uploaded. 105 * 105 * 106 106 * @param cs the current changeset. Ignored if null. 107 107 * @param monitor the progress monitor. Set to {@see NullProgressMonitor#INSTANCE} if null -
trunk/src/org/openstreetmap/josm/io/FileImporter.java
r2703 r2711 31 31 return false; 32 32 } 33 33 34 34 /** 35 35 * Needs to be implemented if isBatchImporter() returns false. … … 79 79 80 80 /** 81 * If multiple files (with multiple file formats) are selected, 81 * If multiple files (with multiple file formats) are selected, 82 82 * they are opened in the order of their priorities. 83 83 * Highest priority comes first. -
trunk/src/org/openstreetmap/josm/io/OsmChangeBuilder.java
r2604 r2711 68 68 /** 69 69 * Writes the prolog of the OsmChange document 70 * 70 * 71 71 * @throws IllegalStateException thrown if the prologs has already been written 72 72 */ … … 82 82 /** 83 83 * Appends a collection of {@see OsmPrimitive}s to the OsmChange document. 84 * 84 * 85 85 * @param primitives the collection of primitives. Ignored if null. 86 86 * @throws IllegalStateException thrown if the prologs has not been written yet … … 99 99 /** 100 100 * Appends an {@see OsmPrimitive} to the OsmChange document. 101 * 101 * 102 102 * @param p the primitive. Ignored if null. 103 103 * @throws IllegalStateException thrown if the prologs has not been written yet … … 115 115 /** 116 116 * Writes the epilog of the OsmChange document 117 * 117 * 118 118 * @throws IllegalStateException thrown if the prologs has not been written yet 119 119 */ -
trunk/src/org/openstreetmap/josm/io/OsmChangesetContentParser.java
r2688 r2711 274 274 /** 275 275 * Create a parser 276 * 276 * 277 277 * @param source the input stream with the changeset content as XML document. Must not be null. 278 278 * @throws IllegalArgumentException thrown if source is null. … … 292 292 /** 293 293 * Parses the content 294 * 294 * 295 295 * @param progressMonitor the progress monitor. Set to {@see NullProgressMonitor#INSTANCE} 296 296 * if null … … 323 323 /** 324 324 * Parses the content from the input source 325 * 325 * 326 326 * @return the parsed data 327 327 * @throws OsmDataParsingException thrown if something went wrong. Check for chained -
trunk/src/org/openstreetmap/josm/io/OsmServerObjectReader.java
r2563 r2711 17 17 /** 18 18 * OsmServerObjectReader reads an individual object from the OSM server. 19 * 19 * 20 20 * It can either download the object including or not including its immediate children. 21 21 * The former case is called a "full download". 22 * 22 * 23 23 */ 24 24 public class OsmServerObjectReader extends OsmServerReader { … … 30 30 /** 31 31 * Creates a new server object reader for a given id and a primitive type. 32 * 32 * 33 33 * @param id the object id. > 0 required. 34 34 * @param type the type. Must not be null. … … 49 49 /** 50 50 * Creates a new server object reader for an object with the given <code>id</code> 51 * 51 * 52 52 * @param id the object id. Must not be null. Unique id > 0 required. 53 53 * @param full true, if a full download is requested (i.e. a download including … … 67 67 /** 68 68 * Downloads and parses the data. 69 * 69 * 70 70 * @param progressMonitor the progress monitor. Set to {@see NullProgressMonitor#INSTANCE} if 71 71 * null -
trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java
r2599 r2711 46 46 47 47 long uploadStartTime; 48 49 48 50 49 public String timeLeft(int progress, int list_size) { -
trunk/src/org/openstreetmap/josm/io/auth/CredentialsManager.java
r2641 r2711 18 18 /** 19 19 * Looks up the credentials for a given type. 20 * 20 * 21 21 * @param the type of service. {@see RequestorType#SERVER} for the OSM API server, {@see RequestorType#PROXY} 22 22 * for a proxy server … … 28 28 /** 29 29 * Saves the credentials in <code>credentials</code> for the given service type. 30 * 30 * 31 31 * @param the type of service. {@see RequestorType#SERVER} for the OSM API server, {@see RequestorType#PROXY} 32 32 * for a proxy server … … 37 37 38 38 /** 39 * 39 * 40 40 * @param requestorType the type of service. {@see RequestorType#SERVER} for the OSM API server, {@see RequestorType#PROXY} 41 41 * for a proxy server -
trunk/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java
r2544 r2711 45 45 JOptionPane.showMessageDialog(Main.parent, "JOSM is out of memory. " + 46 46 "Strange things may happen.\nPlease restart JOSM with the -Xmx###M option,\n" + 47 "where ### is the thenumber of MB assigned to JOSM (e.g. 256).\n" +47 "where ### is the number of MB assigned to JOSM (e.g. 256).\n" + 48 48 "Currently, " + Runtime.getRuntime().maxMemory()/1024/1024 + " MB are available to JOSM.", 49 49 tr("Error"), … … 98 98 p.add(new UrlLabel(url.toString(), "http://josm.openstreetmap.de/josmticket?..."), GBC.eop().insets(8,0,0,0)); 99 99 p.add(new JLabel(tr("<html><p>" + 100 "There the theerror information provided below should already be<br>" +100 "There the error information provided below should already be<br>" + 101 101 "filled out for you. Please include information on how to reproduce<br>" + 102 102 "the error and try to supply as much detail as possible.</p></html>")), GBC.eop());
Note:
See TracChangeset
for help on using the changeset viewer.