Index: applications/editors/josm/plugins/rasterfilters/build.xml
===================================================================
--- applications/editors/josm/plugins/rasterfilters/build.xml	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/build.xml	(revision 31504)
@@ -7,9 +7,9 @@
 	
 	<!-- enter the SVN commit message -->
-	<property name="commit.message" value="The first commit of rasterfilters JOSM's plugin" />
+	<property name="commit.message" value="Publishing RasterFilters plugin ver 1.0.1" />
 	
 	<!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
 	<property name="plugin.main.version" value="8625" />
-	<property name="plugin.version" value="1.0"/>
+	<property name="plugin.version" value="1.0.1"/>
 
     <property name="plugin.icon" value="images/josm_filters_48.png"/>
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/RasterFiltersPlugin.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/RasterFiltersPlugin.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/RasterFiltersPlugin.java	(revision 31504)
@@ -22,5 +22,11 @@
 import org.openstreetmap.josm.plugins.rasterfilters.preferences.FiltersDownloader;
 import org.openstreetmap.josm.plugins.rasterfilters.preferences.RasterFiltersPreferences;
-
+/**
+ * Main Plugin class. This class embed new plugin button for adding filter and
+ * subtab in Preferences menu
+ *
+ * @author Nipel-Crumple
+ *
+ */
 public class RasterFiltersPlugin extends Plugin implements LayerChangeListener {
 
@@ -35,4 +41,6 @@
 		File file = new File(getPluginDir());
 		if (file.mkdir()) {
+
+			// opening file with last user's settings
 			file = new File(file.getAbsoluteFile() + "\\urls.map");
 			if (!file.exists()) {
@@ -93,6 +101,4 @@
 					.getComponent(0);
 			buttonRowPanel.add(filterButton);
-
-			Main.debug("Layer " + newLayer.getName() + "was added");
 		}
 
@@ -106,5 +112,4 @@
 	@Override
 	public void layerRemoved(Layer oldLayer) {
-		Main.debug("Layer " + oldLayer.getName() + "was removed");
 
 		if (oldLayer instanceof ImageryLayer) {
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/actions/ShowLayerFiltersDialog.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/actions/ShowLayerFiltersDialog.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/actions/ShowLayerFiltersDialog.java	(revision 31504)
@@ -20,4 +20,12 @@
 import org.openstreetmap.josm.tools.ImageProvider;
 
+/**
+ * The action that is called when user click on 'Choose filters' button
+ *
+ * and sets image on that button
+ *
+ * @author Nipel-Crumple
+ *
+ */
 public final class ShowLayerFiltersDialog extends AbstractAction implements LayerAction {
 
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/filters/Filter.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/filters/Filter.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/filters/Filter.java	(revision 31504)
@@ -5,13 +5,54 @@
 
 import javax.json.JsonObject;
-
+/**
+ * The Filter interface is inherited by all filters which are implemented.
+ *
+ * This interface has four methods that should be overrided in
+ *
+ * implementation.
+ *
+ * @author Nipel-Crumple
+ *
+ */
 public interface Filter {
 
+	/**
+	 * This method should take external fields values of filter's parameters
+	 * which should be described in the meta-information. In other words, if you have 3
+	 * controls of type 'linear_slider' and if state at least one of these
+	 * controls has changed, you will get new filter state in the form of
+	 * json object 'filterState', then parse it and
+	 * store given parameters' values in class.
+	 *
+	 * @param filterState json that has information about current filter state
+	 *
+	 * @return json object 'filterState'
+	 */
 	public JsonObject changeFilterState(JsonObject filterState);
 
+	/**
+	 * This method processes given image and returns
+	 * updated version of the image. Algorithm and implementation of
+	 * this method depends on your needs and wishes.
+	 *
+	 * @param img image to process
+	 *
+	 * @return processed image
+	 */
 	public BufferedImage applyFilter(BufferedImage img);
 
+	/**
+	 * Every filter must have his own unique ID number.
+	 * In case of rasterfilters plugin it ID is the type of UID.
+	 *
+	 * @param id sets value of ID field
+	 */
 	public void setId(UID id);
 
+	/**
+	 * Getter for filter's ID field.
+	 *
+	 * @return id of filter
+	 */
 	public UID getId();
 }
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterGuiListener.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterGuiListener.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterGuiListener.java	(revision 31504)
@@ -28,6 +28,12 @@
 import com.bric.swing.ColorPicker;
 
+/**
+ * This class is GUI listener which tracks all changes of GUI controls
+ * elements: sliders, checkboxes, color pickers and select lists.
+ * @author Nipel-Crumple
+ *
+ */
 public class FilterGuiListener implements ChangeListener, ItemListener,
-ActionListener, PropertyChangeListener, FilterStateOwner {
+		ActionListener, PropertyChangeListener, FilterStateOwner {
 
 	private StateChangeListener handler;
@@ -44,4 +50,7 @@
 	}
 
+	/**
+	 * Listener which responds on any changes of sliders values.
+	 */
 	@Override
 	public void stateChanged(ChangeEvent e) {
@@ -57,5 +66,6 @@
 		if (filterState.getParams().containsKey(parameterName)) {
 
-			SliderValue<Number> value = (SliderValue<Number>) filterState.getParams().get(parameterName);
+			SliderValue<Number> value = (SliderValue<Number>) filterState
+					.getParams().get(parameterName);
 
 			if (value.isDouble()) {
@@ -68,5 +78,5 @@
 		}
 
-		// notify about state is changed now so send msg to FiltersManager
+		// notifies about state is changed now and sends msg to FiltersManager
 		handler.filterStateChanged(filterId, filterState);
 	}
@@ -90,4 +100,7 @@
 	}
 
+	/**
+	 * Method reacts on changes of checkbox GUI elements.
+	 */
 	@Override
 	public void itemStateChanged(ItemEvent e) {
@@ -105,4 +118,7 @@
 	}
 
+	/**
+	 * Methods tracks all changes of select lists
+	 */
 	@Override
 	public void actionPerformed(ActionEvent e) {
@@ -111,5 +127,6 @@
 
 		String parameterName = box.getName();
-		SelectValue<String> value = (SelectValue<String>) filterState.getParams().get(parameterName);
+		SelectValue<String> value = (SelectValue<String>) filterState
+				.getParams().get(parameterName);
 
 		ComboBoxModel<String> model = box.getModel();
@@ -123,4 +140,8 @@
 	}
 
+	/**
+	 * This listener's method is for responding on some
+	 * color pick changes.
+	 */
 	@Override
 	public void propertyChange(PropertyChangeEvent evt) {
@@ -133,5 +154,6 @@
 		String parameterName = picker.getName();
 
-		ColorValue<Color> value = (ColorValue<Color>) filterState.getParams().get(parameterName);
+		ColorValue<Color> value = (ColorValue<Color>) filterState.getParams()
+				.get(parameterName);
 		value.setValue(new Color(r, g, b));
 
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterPanel.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterPanel.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterPanel.java	(revision 31504)
@@ -35,4 +35,12 @@
 import com.bric.swing.ColorPicker;
 
+/**
+ * FilterPanel is usual JPanel with its
+ * own GUI elements which is added according to
+ * meta-information of filter.
+ *
+ * @author Nipel-Crumple
+ *
+ */
 public class FilterPanel extends JPanel {
 
@@ -47,4 +55,12 @@
 	}
 
+	/**
+	 * Methods adds GUI element on filter's panel according to meta-information and
+	 * automatically resizes the given filter's panel.
+	 *
+	 * @param json filter's meta-information
+	 *
+	 * @return added GUI element
+	 */
 	public JComponent addGuiElement(JsonObject json) {
 		String type = json.getString("type");
@@ -271,7 +287,4 @@
 				}
 			}
-			Main.debug("minValue: " + String.valueOf(minValue) +
-					"\nmaxValue: " + String.valueOf(maxValue) +
-					"\ninitValue: " + new Double(initValue).intValue());
 
 			try {
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterStateOwner.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterStateOwner.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FilterStateOwner.java	(revision 31504)
@@ -2,8 +2,13 @@
 
 import org.openstreetmap.josm.plugins.rasterfilters.model.FilterStateModel;
+/**
+ * Filter state's keeper. This interface is implemented by {@link FilterGuiListeener}.
+ *
+ * @author Nipel-Crumple
+ *
+ */
+public interface FilterStateOwner {
 
-public interface FilterStateOwner {
-	
 	public FilterStateModel getState();
-	
+
 }
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FiltersDialog.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FiltersDialog.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/gui/FiltersDialog.java	(revision 31504)
@@ -26,4 +26,11 @@
 import org.openstreetmap.josm.plugins.rasterfilters.preferences.FiltersDownloader;
 
+/**
+ * This filters is responsible for creating filter's dialog where user can
+ * choose and add new filter at this dialog.
+ *
+ * @author Nipel-Crumple
+ *
+ */
 public class FiltersDialog {
 
@@ -123,5 +130,5 @@
 			JLabel label = new JLabel("Add filter");
 			labelPanel.add(label);
-//			pane.add(labelPanel);
+			// pane.add(labelPanel);
 
 			// TODO why after add clicked the top panel is resized???
@@ -146,14 +153,16 @@
 			addButton.setMaximumSize(new Dimension(90, 30));
 			addButton.addActionListener(new AddFilterToPanelListener());
-//
-//			// check if there is no meta information
-//			Main.debug("Empty " + String.valueOf(FiltersDownloader.filterTitles.isEmpty()));
-//			if (FiltersDownloader.filterTitles.isEmpty() || listModel.getSize() == 0) {
-//				addButton.setEnabled(false);
-//				filterChooser.setEnabled(false);
-//			} else {
-//				addButton.setEnabled(true);
-//				filterChooser.setEnabled(true);
-//			}
+			//
+			// // check if there is no meta information
+			// Main.debug("Empty " +
+			// String.valueOf(FiltersDownloader.filterTitles.isEmpty()));
+			// if (FiltersDownloader.filterTitles.isEmpty() ||
+			// listModel.getSize() == 0) {
+			// addButton.setEnabled(false);
+			// filterChooser.setEnabled(false);
+			// } else {
+			// addButton.setEnabled(true);
+			// filterChooser.setEnabled(true);
+			// }
 
 			chooseFilterPanel.add(getAddButton());
@@ -162,6 +171,6 @@
 			topPanel.add(chooseFilterPanel);
 			pane.add(topPanel);
-//			pane.add(chooseFilterPanel);
-//			pane.add(Box.createRigidArea(new Dimension(0, 20)));
+			// pane.add(chooseFilterPanel);
+			// pane.add(Box.createRigidArea(new Dimension(0, 20)));
 
 			frame.setContentPane(pane);
@@ -170,6 +179,6 @@
 		}
 
-
-		if (FiltersDownloader.filterTitles.isEmpty() || listModel.getSize() == 0) {
+		if (FiltersDownloader.filterTitles.isEmpty()
+				|| listModel.getSize() == 0) {
 			addButton.setEnabled(false);
 			filterChooser.setEnabled(false);
@@ -194,24 +203,4 @@
 	}
 
-	public Layer getLayer() {
-		return layer;
-	}
-
-	public JPanel getFilterContainer() {
-		return filterContainer;
-	}
-
-	public DefaultComboBoxModel<String> getListModel() {
-		return listModel;
-	}
-
-	public JComboBox<String> getFilterChooser() {
-		return filterChooser;
-	}
-
-	public JButton getAddButton() {
-		return addButton;
-	}
-
 	public FiltersManager getFiltersManager() {
 		return filtersManager;
@@ -247,3 +236,23 @@
 		return showedFiltersTitles;
 	}
+
+	public Layer getLayer() {
+		return layer;
+	}
+
+	public JPanel getFilterContainer() {
+		return filterContainer;
+	}
+
+	public DefaultComboBoxModel<String> getListModel() {
+		return listModel;
+	}
+
+	public JComboBox<String> getFilterChooser() {
+		return filterChooser;
+	}
+
+	public JButton getAddButton() {
+		return addButton;
+	}
 }
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/FilterStateModel.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/FilterStateModel.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/FilterStateModel.java	(revision 31504)
@@ -15,5 +15,13 @@
 import org.openstreetmap.josm.plugins.rasterfilters.values.SliderValue;
 import org.openstreetmap.josm.plugins.rasterfilters.values.Value;
-
+/**
+ * Filter state's model which stores all parameters of
+ * the filter according to its meta-information.
+ * The usual values from meta-information are converted
+ * into subtypes of the generic interface {@link Value}
+ *
+ * @author Nipel-Crumple
+ *
+ */
 public class FilterStateModel {
 
@@ -96,4 +104,9 @@
 	}
 
+	/**
+	 * Method generates json from the current filter's model state.
+	 *
+	 * @return encoded json which describes current filter's state
+	 */
 	public JsonObject encodeJson() {
 
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/FiltersManager.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/FiltersManager.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/FiltersManager.java	(revision 31504)
@@ -33,5 +33,11 @@
 
 import com.bric.swing.ColorPicker;
-
+/**
+ * This class adds filter to the dialog and can also remove
+ * or disable it from the filters chain.
+ *
+ * @author Nipel-Crumple
+ *
+ */
 public class FiltersManager implements StateChangeListener, ImageProcessor,
 ActionListener, ItemListener {
@@ -142,5 +148,5 @@
 
 	/**
-	 * The method notifies about changes in the filter's status
+	 * The method notifies about changes in the filter's status.
 	 *
 	 * @param filterState
@@ -153,5 +159,7 @@
 			filtersMap.get(filterId).changeFilterState(filterState.encodeJson());
 
-		Main.map.mapView.getActiveLayer().setFilterStateChanged();
+		if (Main.map.mapView.getActiveLayer() != null) {
+			Main.map.mapView.getActiveLayer().setFilterStateChanged();
+		}
 
 	}
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/StateChangeListener.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/StateChangeListener.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/model/StateChangeListener.java	(revision 31504)
@@ -3,4 +3,10 @@
 import java.rmi.server.UID;
 
+/**
+ * Interface that notifies about filter's state is changed.
+ * This interface is implemented by {@link FiltersManager}.
+ * @author Nipel-Crumple
+ *
+ */
 public interface StateChangeListener {
 
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/preferences/FiltersDownloader.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/preferences/FiltersDownloader.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/preferences/FiltersDownloader.java	(revision 31504)
@@ -41,5 +41,12 @@
 import org.jsoup.select.Elements;
 import org.openstreetmap.josm.Main;
-
+/**
+ * This class is responsible for downloading jars which contains
+ * filters implementations, for loading meta from the
+ * <a href="https://josm.openstreetmap.de/wiki/ImageFilters">filter's page</a>.
+ * Also it stores the downloaded information for creating filter's GUI and etc.
+ *
+ * @author Nipel-Crumple
+ */
 public class FiltersDownloader implements ActionListener {
 	private static volatile String pluginDir;
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/preferences/RasterFiltersPreferences.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/preferences/RasterFiltersPreferences.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/preferences/RasterFiltersPreferences.java	(revision 31504)
@@ -23,4 +23,10 @@
 import org.openstreetmap.josm.tools.GBC;
 
+/**
+ * This class draws subtab 'Image Filters' in the Preferences menu.
+ *
+ * @author Nipel-Crumple
+ *
+ */
 public class RasterFiltersPreferences implements SubPreferenceSetting {
 
Index: applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/values/Value.java
===================================================================
--- applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/values/Value.java	(revision 31503)
+++ applications/editors/josm/plugins/rasterfilters/src/org/openstreetmap/josm/plugins/rasterfilters/values/Value.java	(revision 31504)
@@ -1,12 +1,21 @@
 package org.openstreetmap.josm.plugins.rasterfilters.values;
 
+import org.openstreetmap.josm.plugins.rasterfilters.model.FilterStateModel;
+
+/**
+ * Generic values which are used by {@link FilterStateModel}.
+ *
+ * @author Nipel-Crumple
+ *
+ * @param <T> generic class of the value
+ */
 public interface Value<T extends Object> {
-	
+
 	public T getValue();
-	
+
 	public void setValue(T value);
-	
+
 	public String getParameterName();
-	
+
 	public void setParameterName(String name);
 }
