Index: /applications/editors/josm/plugins/imagewaypoint/build.xml
===================================================================
--- /applications/editors/josm/plugins/imagewaypoint/build.xml	(revision 29798)
+++ /applications/editors/josm/plugins/imagewaypoint/build.xml	(revision 29799)
@@ -30,157 +30,18 @@
 <project name="ImageWayPoint" default="dist" basedir=".">
     <!-- enter the SVN commit message -->
-    <property name="commit.message" value="Updated the constructor signature of the plugin main class"/>
+    <property name="commit.message" value="[josm/ImageWayPoint] move opening to File/Open"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
     <property name="plugin.main.version" value="4980"/>
-    <property name="josm" location="../../core/dist/josm-custom.jar"/>
-    <property name="plugin.dist.dir" value="../../dist"/>
-    <property name="plugin.build.dir" value="build"/>
-    <property name="plugin.jar" value="${plugin.dist.dir}/${ant.project.name}.jar"/>
-    <property name="ant.build.javac.target" value="1.5"/>
-    <target name="init">
-        <mkdir dir="${plugin.build.dir}"/>
-    </target>
-    <target name="compile" depends="init">
-        <echo message="creating ${plugin.jar}"/>
-        <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
-            <compilerarg value="-Xlint:deprecation"/>
-            <compilerarg value="-Xlint:unchecked"/>
-        </javac>
-    </target>
-    <target name="dist" depends="compile,revision">
-        <copy todir="${plugin.build.dir}/images">
-            <fileset dir="images"/>
-        </copy>
-        <copy todir="${plugin.build.dir}/data">
-            <fileset dir="data"/>
-        </copy>
-        <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
-            <manifest>
-                <attribute name="Author" value="Flint"/>
-                <attribute name="Plugin-Class" value="org.insignificant.josm.plugins.imagewaypoint.ImageWayPointPlugin"/>
-                <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
-                <attribute name="Plugin-Description" value="Another plugin to match images to the waypoints in a GPX file. A match is made when the ''name'', ''cmt'' or ''desc'' attribute of a waypoint tag matches the filename of an image."/>
-                <attribute name="Plugin-Early" value="false"/>
-                <attribute name="Plugin-Icon" value="images/dialogs/imagewaypoint.png"/>
-                <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
-                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
-            </manifest>
-        </jar>
-    </target>
-    <target name="revision">
-        <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="info"/>
-            <arg value="--xml"/>
-            <arg value="."/>
-        </exec>
-        <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
-        <delete file="REVISION"/>
-    </target>
-    <target name="clean">
-        <delete dir="${plugin.build.dir}"/>
-        <delete file="${plugin.jar}"/>
-    </target>
-    <target name="install" depends="dist">
-        <property environment="env"/>
-        <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
-            <and>
-                <os family="windows"/>
-            </and>
-        </condition>
-        <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
-    </target>
-    <!--
-    ************************** Publishing the plugin ***********************************
+    
+    <!-- Configure these properties (replace "..." accordingly).
+         See http://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
     -->
-    <!--
-        ** extracts the JOSM release for the JOSM version in ../core and saves it in the
-        ** property ${coreversion.info.entry.revision}
-        **
-        -->
-    <target name="core-info">
-        <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="info"/>
-            <arg value="--xml"/>
-            <arg value="../../core"/>
-        </exec>
-        <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
-        <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
-        <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
-        <delete file="core.info.xml"/>
-    </target>
-    <!--
-        ** commits the source tree for this plugin
-        -->
-    <target name="commit-current">
-        <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="commit"/>
-            <arg value="-m '${commit.message}'"/>
-            <arg value="."/>
-        </exec>
-    </target>
-    <!--
-        ** updates (svn up) the source tree for this plugin
-        -->
-    <target name="update-current">
-        <echo>Updating plugin source ...</echo>
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="up"/>
-            <arg value="."/>
-        </exec>
-        <echo>Updating ${plugin.jar} ...</echo>
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="up"/>
-            <arg value="../dist/${plugin.jar}"/>
-        </exec>
-    </target>
-    <!--
-        ** commits the plugin.jar
-        -->
-    <target name="commit-dist">
-        <echo>
-    ***** Properties of published ${plugin.jar} *****
-    Commit message    : '${commit.message}'
-    Plugin-Mainversion: ${plugin.main.version}
-    JOSM build version: ${coreversion.info.entry.revision}
-    Plugin-Version    : ${version.entry.commit.revision}
-    ***** / Properties of published ${plugin.jar} *****
+    <property name="plugin.author" value="Flint"/>
+    <property name="plugin.class" value="org.insignificant.josm.plugins.imagewaypoint.ImageWayPointPlugin"/>
+    <property name="plugin.description" value="Another plugin to match images to the waypoints in a GPX file. A match is made when the ''name'', ''cmt'' or ''desc'' attribute of a waypoint tag matches the filename of an image."/>
+    <property name="plugin.icon" value="images/dialogs/imagewaypoint.png"/>
+    <property name="plugin.link" value="http://wiki.openstreetmap.org/wiki/JOSM/Plugins/ImageWayPoint"/>
 
-    Now commiting ${plugin.jar} ...
-    </echo>
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
-            <env key="LANG" value="C"/>
-            <arg value="-m '${commit.message}'"/>
-            <arg value="commit"/>
-            <arg value="${plugin.jar}"/>
-        </exec>
-    </target>
-    <!-- ** make sure svn is present as a command line tool ** -->
-    <target name="ensure-svn-present">
-        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
-            <env key="LANG" value="C"/>
-            <arg value="--version"/>
-        </exec>
-        <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
-            <!-- return code not set at all? Most likely svn isn't installed -->
-            <condition>
-                <not>
-                    <isset property="svn.exit.code"/>
-                </not>
-            </condition>
-        </fail>
-        <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
-            <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
-            <condition>
-                <isfailure code="${svn.exit.code}"/>
-            </condition>
-        </fail>
-    </target>
-    <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
-    </target>
+    <!-- ** include targets that all plugins have in common ** -->
+    <import file="../build-common.xml"/>
 </project>
Index: /applications/editors/josm/plugins/imagewaypoint/nbproject/project.xml
===================================================================
--- /applications/editors/josm/plugins/imagewaypoint/nbproject/project.xml	(revision 29799)
+++ /applications/editors/josm/plugins/imagewaypoint/nbproject/project.xml	(revision 29799)
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://www.netbeans.org/ns/project/1">
+    <type>org.netbeans.modules.ant.freeform</type>
+    <configuration>
+        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/1">
+            <name>ImageWayPoint</name>
+        </general-data>
+        <general-data xmlns="http://www.netbeans.org/ns/freeform-project/2">
+            <!-- Не используйте диалоговое окно свойств проекта при редактировании данного файла вручную. -->
+            <name>ImageWayPoint</name>
+            <properties/>
+            <folders>
+                <source-folder>
+                    <label>ImageWayPoint</label>
+                    <location>.</location>
+                    <encoding>UTF-8</encoding>
+                </source-folder>
+                <source-folder>
+                    <label>src</label>
+                    <type>java</type>
+                    <location>src</location>
+                    <encoding>UTF-8</encoding>
+                </source-folder>
+            </folders>
+            <ide-actions>
+                <action name="build">
+                    <target>compile</target>
+                </action>
+                <action name="clean">
+                    <target>clean</target>
+                </action>
+                <action name="run">
+                    <target>runjosm</target>
+                </action>
+                <action name="rebuild">
+                    <target>clean</target>
+                    <target>compile</target>
+                </action>
+            </ide-actions>
+            <view>
+                <items>
+                    <source-folder style="packages">
+                        <label>src</label>
+                        <location>src</location>
+                    </source-folder>
+                    <source-file>
+                        <location>build.xml</location>
+                    </source-file>
+                </items>
+                <context-menu>
+                    <ide-action name="build"/>
+                    <ide-action name="rebuild"/>
+                    <ide-action name="clean"/>
+                    <ide-action name="run"/>
+                </context-menu>
+            </view>
+            <subprojects/>
+        </general-data>
+        <java-data xmlns="http://www.netbeans.org/ns/freeform-project-java/3">
+            <compilation-unit>
+                <package-root>src</package-root>
+                <classpath mode="compile">../../core/src</classpath>
+                <source-level>1.6</source-level>
+            </compilation-unit>
+        </java-data>
+    </configuration>
+</project>
Index: /applications/editors/josm/plugins/imagewaypoint/src/org/insignificant/josm/plugins/imagewaypoint/ImageWayPointPlugin.java
===================================================================
--- /applications/editors/josm/plugins/imagewaypoint/src/org/insignificant/josm/plugins/imagewaypoint/ImageWayPointPlugin.java	(revision 29798)
+++ /applications/editors/josm/plugins/imagewaypoint/src/org/insignificant/josm/plugins/imagewaypoint/ImageWayPointPlugin.java	(revision 29799)
@@ -5,4 +5,5 @@
 import java.awt.event.ActionEvent;
 import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -14,8 +15,13 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.ExtensionFileFilter;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.gui.util.GuiHelper;
+import org.openstreetmap.josm.io.FileImporter;
+import org.openstreetmap.josm.io.IllegalDataException;
 import org.openstreetmap.josm.plugins.PluginInformation;
 
@@ -37,36 +43,27 @@
     }
 
-    private static final class LoadImagesAction extends JosmAction {
-        private static final long serialVersionUID = 4480306223276347301L;
+    private final class ImageWaypointImporter extends FileImporter {
 
-        private final ImageWayPointPlugin plugin;
-
-        public LoadImagesAction(final ImageWayPointPlugin plugin) {
-            super(tr("Open images with ImageWayPoint"),
-            "imagewaypoint-open",
-            tr("Load set of images as a new layer."),
-            null,
-            false);
-
-            this.plugin = plugin;
+        public ImageWaypointImporter() {
+            super(new ExtensionFileFilter("jpg,jpeg,png,gif", "jpg", "Image files [by ImageWayPoint plugin] (*.jpg, *.jpeg, *.png, *.gif)"));
         }
 
-        public final void actionPerformed(final ActionEvent actionEvent) {
-            final JFileChooser fileChooser = new JFileChooser(Main.pref.get("tagimages.lastdirectory"));
-            fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
-            fileChooser.setMultiSelectionEnabled(true);
-            fileChooser.setAcceptAllFileFilterUsed(false);
-            fileChooser.setFileFilter(new ImageFileFilter());
+        @Override
+        public boolean isBatchImporter() {
+            return true;
+        }
 
-            fileChooser.showOpenDialog(Main.parent);
+        @Override
+        public double getPriority() {
+            return -3;
+        }
 
-            final File[] selectedFiles = fileChooser.getSelectedFiles();
-            if (null != selectedFiles && 0 != selectedFiles.length) {
-                Main.pref.put("tagimages.lastdirectory",
-                    fileChooser.getCurrentDirectory().getPath());
-
+        @Override
+        public void importData(List<File> files, ProgressMonitor progressMonitor) throws IOException, IllegalDataException {
+            if (null != files && !files.isEmpty()) {
+            
                 // recursively find all files
                 final List<File> allFiles = new ArrayList<File>();
-                this.plugin.addFiles(allFiles, selectedFiles);
+                addFiles(allFiles, files.toArray(new File[0]));
 
                 // add files to ImageEntries
@@ -86,5 +83,10 @@
                 }
                 if (!foundImageWayPointLayer) {
-                    new ImageWayPointLayer();
+                    GuiHelper.runInEDT(new Runnable() {
+                        @Override
+                        public void run() {
+                            new ImageWayPointLayer();
+                        }
+                    });
                 }
             }
@@ -97,7 +99,5 @@
     public ImageWayPointPlugin(PluginInformation info) {
         super(info);
-
-        MainMenu menu = Main.main.menu;
-        menu.add(menu.fileMenu, new LoadImagesAction(this));
+	ExtensionFileFilter.importers.add(new ImageWaypointImporter());
     }
 
