Changeset 19458 in osm for applications/editors/josm


Ignore:
Timestamp:
2010-01-13T14:56:15+01:00 (14 years ago)
Author:
guggis
Message:

'Changed the constructor signature of the plugin main class'

Location:
applications/editors/josm/plugins/nearclick
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/nearclick/build.xml

    r17705 r19458  
     1<?xml version="1.0" encoding="UTF-8"?>
     2<!--
     3** This is the build file for the nearclick plugin.
     4**
     5** Maintaining versions
     6** ====================
     7** see README.template
     8**
     9** Usage
     10** =====
     11** To build it run
     12**
     13**    > ant  dist
     14**
     15** To install the generated plugin locally (in you default plugin directory) run
     16**
     17**    > ant  install
     18**
     19** The generated plugin jar is not automatically available in JOSMs plugin configuration
     20** dialog. You have to check it in first.
     21**
     22** Use the ant target 'publish' to check in the plugin and make it available to other
     23** JOSM users:
     24**    set the properties commit.message and plugin.main.version
     25** and run
     26**    > ant  publish
     27**
     28**
     29-->
    130<project name="nearclick" default="dist" basedir=".">
    2     <property name="josm"                   location="../../core/dist/josm-custom.jar"/>
    3     <property name="plugin.dist.dir"        value="../../dist"/>
    4     <property name="plugin.build.dir"       value="build"/>
    5     <property name="plugin.jar"             value="${plugin.dist.dir}/${ant.project.name}.jar"/>
    6     <property name="ant.build.javac.target" value="1.5"/>
    7     <target name="init">
    8         <mkdir dir="${plugin.build.dir}"/>
    9     </target>
    10     <target name="compile" depends="init">
    11         <echo message="creating ${plugin.jar}"/>
    12         <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
    13             <compilerarg value="-Xlint:deprecation"/>
    14             <compilerarg value="-Xlint:unchecked"/>
    15         </javac>
    16     </target>
    17     <target name="dist" depends="compile,revision">
    18         <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
    19             <manifest>
    20                 <attribute name="Author" value="Imi, David Earl"/>
    21                 <attribute name="Plugin-Class" value="nearclick.NearClickPlugin"/>
    22                 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
    23                 <attribute name="Plugin-Description" value="Simulates a click when you do a small and short drag. This is useful for tablet pens, when you have problems just clicking the tablet without the mouse moving (general Java - tablet problem)."/>
    24                 <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/JOSM/Plugins/Nearclick"/>
    25                 <attribute name="Plugin-Mainversion" value="1465"/>
    26                 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    27             </manifest>
    28         </jar>
    29     </target>
    30     <target name="revision">
    31         <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
    32             <env key="LANG" value="C"/>
    33             <arg value="info"/>
    34             <arg value="--xml"/>
    35             <arg value="."/>
    36         </exec>
    37         <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
    38         <delete file="REVISION"/>
    39     </target>
    40     <target name="clean">
    41         <delete dir="${plugin.build.dir}"/>
    42         <delete file="${plugin.jar}"/>
    43     </target>
    44     <target name="install" depends="dist">
    45         <property environment="env"/>
    46         <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
    47             <and>
    48                 <os family="windows"/>
    49             </and>
    50         </condition>
    51         <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
    52     </target>
     31
     32        <!-- enter the SVN commit message -->
     33        <property name="commit.message" value="Changed the constructor signature of the plugin main class" />
     34        <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
     35        <property name="plugin.main.version" value="2830" />
     36
     37
     38        <property name="josm"                   location="../../core/dist/josm-custom.jar"/>
     39        <property name="plugin.dist.dir"        value="../../dist"/>
     40        <property name="plugin.build.dir"       value="build"/>
     41        <property name="plugin.jar"             value="${plugin.dist.dir}/${ant.project.name}.jar"/>
     42        <property name="ant.build.javac.target" value="1.5"/>
     43        <target name="init">
     44                <mkdir dir="${plugin.build.dir}"/>
     45        </target>
     46        <target name="compile" depends="init">
     47                <echo message="creating ${plugin.jar}"/>
     48                <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
     49                        <compilerarg value="-Xlint:deprecation"/>
     50                        <compilerarg value="-Xlint:unchecked"/>
     51                </javac>
     52        </target>
     53        <target name="dist" depends="compile,revision">
     54                <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
     55                        <manifest>
     56                                <attribute name="Author" value="Imi, David Earl"/>
     57                                <attribute name="Plugin-Class" value="nearclick.NearClickPlugin"/>
     58                                <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
     59                                <attribute name="Plugin-Description" value="Simulates a click when you do a small and short drag. This is useful for tablet pens, when you have problems just clicking the tablet without the mouse moving (general Java - tablet problem)."/>
     60                                <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/JOSM/Plugins/Nearclick"/>
     61                                <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
     62                                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
     63                        </manifest>
     64                </jar>
     65        </target>
     66        <target name="revision">
     67                <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
     68                        <env key="LANG" value="C"/>
     69                        <arg value="info"/>
     70                        <arg value="--xml"/>
     71                        <arg value="."/>
     72                </exec>
     73                <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
     74                <delete file="REVISION"/>
     75        </target>
     76        <target name="clean">
     77                <delete dir="${plugin.build.dir}"/>
     78                <delete file="${plugin.jar}"/>
     79        </target>
     80        <target name="install" depends="dist">
     81                <property environment="env"/>
     82                <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
     83                        <and>
     84                                <os family="windows"/>
     85                        </and>
     86                </condition>
     87                <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
     88        </target>
     89
     90        <!--
     91        ************************** Publishing the plugin ***********************************
     92        -->
     93        <!--
     94                ** extracts the JOSM release for the JOSM version in ../core and saves it in the
     95                ** property ${coreversion.info.entry.revision}
     96                **
     97                -->
     98        <target name="core-info">
     99                <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
     100                        <env key="LANG" value="C"/>
     101                        <arg value="info"/>
     102                        <arg value="--xml"/>
     103                        <arg value="../../core"/>
     104                </exec>
     105                <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
     106                <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
     107                <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
     108                <delete file="core.info.xml" />
     109        </target>
     110
     111        <!--
     112                ** commits the source tree for this plugin
     113                -->
     114        <target name="commit-current">
     115                <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
     116                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     117                        <env key="LANG" value="C"/>
     118                        <arg value="commit"/>
     119                        <arg value="-m '${commit.message}'"/>
     120                        <arg value="."/>
     121                </exec>
     122        </target>
     123
     124        <!--
     125                ** updates (svn up) the source tree for this plugin
     126                -->
     127        <target name="update-current">
     128                <echo>Updating plugin source ...</echo>
     129                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     130                        <env key="LANG" value="C"/>
     131                        <arg value="up"/>
     132                        <arg value="."/>
     133                </exec>
     134                <echo>Updating ${plugin.jar} ...</echo>
     135                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     136                        <env key="LANG" value="C"/>
     137                        <arg value="up"/>
     138                        <arg value="../dist/${plugin.jar}"/>
     139                </exec>
     140        </target>
     141
     142        <!--
     143                ** commits the plugin.jar
     144                -->
     145        <target name="commit-dist">
     146                <echo>
     147        ***** Properties of published ${plugin.jar} *****
     148        Commit message    : '${commit.message}'                                 
     149        Plugin-Mainversion: ${plugin.main.version}
     150        JOSM build version: ${coreversion.info.entry.revision}
     151        Plugin-Version    : ${version.entry.commit.revision}
     152        ***** / Properties of published ${plugin.jar} *****                                     
     153                                               
     154        Now commiting ${plugin.jar} ...
     155        </echo>
     156                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     157                        <env key="LANG" value="C"/>
     158                        <arg value="-m '${commit.message}'"/>
     159                        <arg value="commit"/>
     160                        <arg value="${plugin.jar}"/>
     161                </exec>
     162        </target>
     163
     164        <!-- ** make sure svn is present as a command line tool ** -->
     165        <target name="ensure-svn-present">
     166                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
     167                        <env key="LANG" value="C" />
     168                        <arg value="--version" />
     169                </exec>
     170                <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
     171                        <!-- return code not set at all? Most likely svn isn't installed -->
     172                        <condition>
     173                                <not>
     174                                        <isset property="svn.exit.code" />
     175                                </not>
     176                        </condition>
     177                </fail>
     178                <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
     179                        <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
     180                        <condition>
     181                                <isfailure code="${svn.exit.code}" />
     182                        </condition>
     183                </fail>
     184        </target>
     185
     186        <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
     187        </target>
    53188</project>
  • applications/editors/josm/plugins/nearclick/src/nearclick/NearClickPlugin.java

    r13497 r19458  
    99import java.awt.event.MouseEvent;
    1010import org.openstreetmap.josm.Main;
     11import org.openstreetmap.josm.plugins.PluginInformation;
    1112
    1213public class NearClickPlugin implements AWTEventListener {
    1314
    14     private int mouseDownX = -1;
    15     private int mouseDownY = -1;
    16     private long mouseDownTime = -1;
    17     private int radiussquared = 49;
    18     private int delay = 250;
     15        private int mouseDownX = -1;
     16        private int mouseDownY = -1;
     17        private long mouseDownTime = -1;
     18        private int radiussquared = 49;
     19        private int delay = 250;
    1920
    20     public NearClickPlugin() {
    21         Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK);
    22     try {
    23         int radius = Integer.parseInt(Main.pref.get("nearclick.radius", "7"));
    24         radiussquared = radius * radius;
    25         delay = Integer.parseInt(Main.pref.get("nearclick.delay", "250"));
    26     } catch (NumberFormatException ex) {
    27         delay = 250;
    28         radiussquared = 7 * 7;
    29     }
    30     }
     21        public NearClickPlugin(PluginInformation info) {
     22                Toolkit.getDefaultToolkit().addAWTEventListener(this,
     23                                AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK);
     24                try {
     25                        int radius = Integer.parseInt(Main.pref
     26                                        .get("nearclick.radius", "7"));
     27                        radiussquared = radius * radius;
     28                        delay = Integer.parseInt(Main.pref.get("nearclick.delay", "250"));
     29                } catch (NumberFormatException ex) {
     30                        delay = 250;
     31                        radiussquared = 7 * 7;
     32                }
     33        }
    3134
    32     public void eventDispatched(AWTEvent event) {
    33         if (event instanceof MouseEvent) {
    34             MouseEvent e = (MouseEvent)event;
    35             if ( e.getButton() != MouseEvent.BUTTON1 )
    36                 return;
    37         int xdiff = e.getPoint().x - mouseDownX;
    38         int ydiff = e.getPoint().y - mouseDownY;
    39        
    40             if (e.getID() == MouseEvent.MOUSE_RELEASED) {
    41                 if ( e.getWhen() - mouseDownTime < delay &&
    42              ( e.getPoint().x != mouseDownX ||
    43                e.getPoint().y != mouseDownY) &&
    44              xdiff * xdiff + ydiff * ydiff < radiussquared
    45            ) {
    46                     try {
    47                         Robot r = new Robot(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice());
    48                         r.mousePress(MouseEvent.BUTTON1_MASK);
    49                         r.mouseRelease(MouseEvent.BUTTON1_MASK);
    50                     } catch (AWTException e1) {
    51                     }
    52                 }               
    53             }
    54             if (e.getID() == MouseEvent.MOUSE_PRESSED) {
    55                 mouseDownX = e.getPoint().x;
    56                 mouseDownY = e.getPoint().y;
    57                 mouseDownTime = e.getWhen();           
    58             }
    59         }
    60     }
     35        public void eventDispatched(AWTEvent event) {
     36                if (event instanceof MouseEvent) {
     37                        MouseEvent e = (MouseEvent) event;
     38                        if (e.getButton() != MouseEvent.BUTTON1)
     39                                return;
     40                        int xdiff = e.getPoint().x - mouseDownX;
     41                        int ydiff = e.getPoint().y - mouseDownY;
     42
     43                        if (e.getID() == MouseEvent.MOUSE_RELEASED) {
     44                                if (e.getWhen() - mouseDownTime < delay
     45                                                && (e.getPoint().x != mouseDownX || e.getPoint().y != mouseDownY)
     46                                                && xdiff * xdiff + ydiff * ydiff < radiussquared) {
     47                                        try {
     48                                                Robot r = new Robot(GraphicsEnvironment
     49                                                                .getLocalGraphicsEnvironment()
     50                                                                .getDefaultScreenDevice());
     51                                                r.mousePress(MouseEvent.BUTTON1_MASK);
     52                                                r.mouseRelease(MouseEvent.BUTTON1_MASK);
     53                                        } catch (AWTException e1) {
     54                                        }
     55                                }
     56                        }
     57                        if (e.getID() == MouseEvent.MOUSE_PRESSED) {
     58                                mouseDownX = e.getPoint().x;
     59                                mouseDownY = e.getPoint().y;
     60                                mouseDownTime = e.getWhen();
     61                        }
     62                }
     63        }
    6164}
Note: See TracChangeset for help on using the changeset viewer.