Index: /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 11386)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 11387)
@@ -104,12 +104,20 @@
 public abstract class SourceEditor extends JPanel {
 
+    /** the type of source entry **/
     protected final SourceType sourceType;
+    /** determines if the entry type can be enabled (set as active) **/
     protected final boolean canEnable;
 
+    /** the table of active sources **/
     protected final JTable tblActiveSources;
+    /** the underlying model of active sources **/
     protected final ActiveSourcesModel activeSourcesModel;
+    /** the list of available sources **/
     protected final JList<ExtendedSourceEntry> lstAvailableSources;
+    /** the underlying model of available sources **/
     protected final AvailableSourcesListModel availableSourcesModel;
+    /** the URL from which the available sources are fetched **/
     protected final String availableSourcesUrl;
+    /** the list of source providers **/
     protected final transient List<SourceProvider> sourceProviders;
 
@@ -117,4 +125,5 @@
     private IconPathTableModel iconPathsModel;
 
+    /** determines if the source providers have been initially loaded **/
     protected boolean sourcesInitiallyLoaded;
 
@@ -397,4 +406,10 @@
     public abstract boolean finish();
 
+    /**
+     * Default implementation of {@link #finish}.
+     * @param prefHelper Helper class for specialized extensions preferences
+     * @param iconPref icons path preference
+     * @return true if restart is required
+     */
     protected boolean doFinish(SourcePrefHelper prefHelper, String iconPref) {
         boolean changed = prefHelper.put(activeSourcesModel.getSources());
@@ -512,4 +527,9 @@
     }
 
+    /**
+     * Reload available sources.
+     * @param url the URL from which the available sources are fetched
+     * @param sourceProviders the list of source providers
+     */
     protected void reloadAvailableSources(String url, List<SourceProvider> sourceProviders) {
         Main.worker.submit(new SourceLoader(url, sourceProviders));
@@ -526,8 +546,15 @@
     }
 
+    /**
+     * List model of available sources.
+     */
     protected static class AvailableSourcesListModel extends DefaultListModel<ExtendedSourceEntry> {
         private final transient List<ExtendedSourceEntry> data;
         private final DefaultListSelectionModel selectionModel;
 
+        /**
+         * Constructs a new {@code AvailableSourcesListModel}
+         * @param selectionModel selection model
+         */
         public AvailableSourcesListModel(DefaultListSelectionModel selectionModel) {
             data = new ArrayList<>();
@@ -535,4 +562,8 @@
         }
 
+        /**
+         * Sets the source list.
+         * @param sources source list
+         */
         public void setSources(List<ExtendedSourceEntry> sources) {
             data.clear();
@@ -554,4 +585,7 @@
         }
 
+        /**
+         * Deletes the selected sources.
+         */
         public void deleteSelected() {
             Iterator<ExtendedSourceEntry> it = data.iterator();
@@ -567,4 +601,8 @@
         }
 
+        /**
+         * Returns the selected sources.
+         * @return the selected sources
+         */
         public List<ExtendedSourceEntry> getSelected() {
             List<ExtendedSourceEntry> ret = new ArrayList<>();
@@ -578,8 +616,15 @@
     }
 
+    /**
+     * Table model of active sources.
+     */
     protected class ActiveSourcesModel extends AbstractTableModel {
         private transient List<SourceEntry> data;
         private final DefaultListSelectionModel selectionModel;
 
+        /**
+         * Constructs a new {@code ActiveSourcesModel}.
+         * @param selectionModel selection model
+         */
         public ActiveSourcesModel(DefaultListSelectionModel selectionModel) {
             this.selectionModel = selectionModel;
@@ -626,4 +671,8 @@
         }
 
+        /**
+         * Sets active sources.
+         * @param sources active sources
+         */
         public void setActiveSources(Collection<? extends SourceEntry> sources) {
             data.clear();
@@ -636,4 +685,8 @@
         }
 
+        /**
+         * Adds an active source.
+         * @param entry source to add
+         */
         public void addSource(SourceEntry entry) {
             if (entry == null) return;
@@ -646,4 +699,7 @@
         }
 
+        /**
+         * Removes the selected sources.
+         */
         public void removeSelected() {
             Iterator<SourceEntry> it = data.iterator();
@@ -659,4 +715,8 @@
         }
 
+        /**
+         * Removes the sources at given indexes.
+         * @param idxs indexes to remove
+         */
         public void removeIdxs(Collection<Integer> idxs) {
             List<SourceEntry> newData = new ArrayList<>();
@@ -670,4 +730,8 @@
         }
 
+        /**
+         * Adds multiple sources.
+         * @param sources source entries
+         */
         public void addExtendedSourceEntries(List<ExtendedSourceEntry> sources) {
             if (sources == null) return;
@@ -687,4 +751,8 @@
         }
 
+        /**
+         * Returns the active sources.
+         * @return the active sources
+         */
         public List<SourceEntry> getSources() {
             return new ArrayList<>(data);
@@ -832,4 +900,7 @@
     }
 
+    /**
+     * Dialog to edit a source entry.
+     */
     protected class EditSourceEntryDialog extends ExtendedDialog {
 
@@ -838,4 +909,10 @@
         private JCheckBox cbActive;
 
+        /**
+         * Constructs a new {@code EditSourceEntryDialog}.
+         * @param parent parent component
+         * @param title dialog title
+         * @param e source entry to edit
+         */
         public EditSourceEntryDialog(Component parent, String title, SourceEntry e) {
             super(parent, title, new String[] {tr("Ok"), tr("Cancel")});
@@ -935,8 +1012,16 @@
         }
 
+        /**
+         * Returns the entered URL / File.
+         * @return the entered URL / File
+         */
         public String getURL() {
             return tfURL.getText();
         }
 
+        /**
+         * Determines if the active combobox is selected.
+         * @return {@code true} if the active combobox is selected
+         */
         public boolean active() {
             if (!canEnable)
@@ -1160,8 +1245,15 @@
     }
 
+    /**
+     * Table model for icons paths.
+     */
     protected static class IconPathTableModel extends AbstractTableModel {
         private final List<String> data;
         private final DefaultListSelectionModel selectionModel;
 
+        /**
+         * Constructs a new {@code IconPathTableModel}.
+         * @param selectionModel selection model
+         */
         public IconPathTableModel(DefaultListSelectionModel selectionModel) {
             this.selectionModel = selectionModel;
@@ -1194,4 +1286,8 @@
         }
 
+        /**
+         * Sets the icons paths.
+         * @param paths icons paths
+         */
         public void setIconPaths(Collection<String> paths) {
             data.clear();
@@ -1203,4 +1299,8 @@
         }
 
+        /**
+         * Adds an icon path.
+         * @param path icon path to add
+         */
         public void addPath(String path) {
             if (path == null) return;
@@ -1214,4 +1314,9 @@
         }
 
+        /**
+         * Updates icon path at given index.
+         * @param pos position
+         * @param path new path
+         */
         public void updatePath(int pos, String path) {
             if (path == null) return;
@@ -1226,4 +1331,7 @@
         }
 
+        /**
+         * Removes the selected path.
+         */
         public void removeSelected() {
             Iterator<String> it = data.iterator();
@@ -1240,4 +1348,7 @@
         }
 
+        /**
+         * Sorts paths lexicographically.
+         */
         protected void sort() {
             data.sort((o1, o2) -> {
@@ -1250,4 +1361,8 @@
         }
 
+        /**
+         * Returns the icon paths.
+         * @return the icon paths
+         */
         public List<String> getIconPaths() {
             return new ArrayList<>(data);
@@ -1746,4 +1861,9 @@
     }
 
+    /**
+     * Returns the title of the given source entry.
+     * @param entry source entry
+     * @return the title of the given source entry, or null if empty
+     */
     protected String getTitleForSourceEntry(SourceEntry entry) {
         return "".equals(entry.title) ? null : entry.title;
