Ignore:
Timestamp:
2009-12-13T10:00:16+01:00 (15 years ago)
Author:
guggis
Message:

'Rebuilding because of JOSM trac ticket #4156; Enabled state management in UploadAction'

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

Legend:

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

    r17532 r19082  
     1<?xml version="1.0" encoding="UTF-8"?>
     2<!--
     3** This is the build file for the DirectUpload 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 your default plugin directory) run
     16**
     17**    > ant  install
     18**
     19** To build against the core in ../../core, create a correct manifest and deploy to
     20** SVN,
     21**    set the properties commit.message and plugin.main.version
     22** and run
     23**    > ant  publish
     24**
     25**
     26-->
    127<project name="DirectUpload" 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         <copy todir="${plugin.build.dir}/images">
    19             <fileset dir="images"/>
    20         </copy>
    21         <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
    22             <manifest>
    23                 <attribute name="Author" value="Subhodip Biswas"/>
    24                 <attribute name="Plugin-Class" value="org.openstreetmap.josm.plugins.DirectUpload.UploadDataGuiPlugin"/>
    25                 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
    26                 <attribute name="Plugin-Description" value="This plugin directly upload GPS Traces from current active layer in JOSM to openstreetmap.org."/>
    27                 <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/User:Subhodip/GSoC_Doc#DirectUpload_Plugin_in_JOSM_:"/>
    28                 <attribute name="Plugin-Mainversion" value="2082"/>
    29                 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    30             </manifest>
    31         </jar>
    32     </target>
    33     <target name="revision">
    34         <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
    35             <env key="LANG" value="C"/>
    36             <arg value="info"/>
    37             <arg value="--xml"/>
    38             <arg value="."/>
    39         </exec>
    40         <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
    41         <delete file="REVISION"/>
    42     </target>
    43     <target name="clean">
    44         <delete dir="${plugin.build.dir}"/>
    45         <delete file="${plugin.jar}"/>
    46     </target>
    47     <target name="install" depends="dist">
    48         <property environment="env"/>
    49         <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
    50             <and>
    51                 <os family="windows"/>
    52             </and>
    53         </condition>
    54         <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
    55     </target>
     28
     29        <property name="commit.message" value="Rebuilding because of JOSM trac ticket #4156; Enabled state management in UploadAction" />
     30        <property name="plugin.main.version" value="2625" />
     31
     32        <property name="josm"                   location="../../core/dist/josm-custom.jar"/>
     33        <property name="plugin.dist.dir"        value="../../dist"/>
     34        <property name="plugin.build.dir"       value="build"/>
     35        <property name="plugin.jar"             value="${plugin.dist.dir}/${ant.project.name}.jar"/>
     36        <property name="ant.build.javac.target" value="1.5"/>
     37        <target name="init">
     38                <mkdir dir="${plugin.build.dir}"/>
     39        </target>
     40        <target name="compile" depends="init">
     41                <echo message="creating ${plugin.jar}"/>
     42                <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
     43                        <compilerarg value="-Xlint:deprecation"/>
     44                        <compilerarg value="-Xlint:unchecked"/>
     45                </javac>
     46        </target>
     47        <target name="dist" depends="compile,revision">
     48                <copy todir="${plugin.build.dir}/images">
     49                        <fileset dir="images"/>
     50                </copy>
     51                <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
     52                        <manifest>
     53                                <attribute name="Author" value="Subhodip Biswas"/>
     54                                <attribute name="Plugin-Class" value="org.openstreetmap.josm.plugins.DirectUpload.UploadDataGuiPlugin"/>
     55                                <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
     56                                <attribute name="Plugin-Description" value="This plugin directly upload GPS Traces from current active layer in JOSM to openstreetmap.org."/>
     57                                <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/User:Subhodip/GSoC_Doc#DirectUpload_Plugin_in_JOSM_:"/>
     58                                <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
     59                                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
     60                        </manifest>
     61                </jar>
     62        </target>
     63        <target name="revision">
     64                <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
     65                        <env key="LANG" value="C"/>
     66                        <arg value="info"/>
     67                        <arg value="--xml"/>
     68                        <arg value="."/>
     69                </exec>
     70                <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
     71                <delete file="REVISION"/>
     72        </target>
     73        <target name="clean">
     74                <delete dir="${plugin.build.dir}"/>
     75                <delete file="${plugin.jar}"/>
     76        </target>
     77        <target name="install" depends="dist">
     78                <property environment="env"/>
     79                <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
     80                        <and>
     81                                <os family="windows"/>
     82                        </and>
     83                </condition>
     84                <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
     85        </target>
     86        <!--
     87         ************************** Publishing the plugin ***********************************
     88        -->
     89        <!--
     90        ** extracts the JOSM release for the JOSM version in ../core and saves it in the
     91        ** property ${coreversion.info.entry.revision}
     92        **
     93        -->
     94        <target name="core-info">
     95                <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
     96                        <env key="LANG" value="C"/>
     97                        <arg value="info"/>
     98                        <arg value="--xml"/>
     99                        <arg value="../../core"/>
     100                </exec>
     101                <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
     102                <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
     103                <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
     104                <delete file="core.info.xml" />
     105        </target>
     106
     107        <!--
     108        ** commits the source tree for this plugin
     109        -->
     110        <target name="commit-current">
     111                <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
     112                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     113                        <env key="LANG" value="C"/>
     114                        <arg value="commit"/>
     115                        <arg value="-m '${commit.message}'"/>
     116                        <arg value="."/>
     117                </exec>
     118        </target>
     119
     120        <!--
     121        ** updates (svn up) the source tree for this plugin
     122        -->
     123        <target name="update-current">
     124                <echo>Updating plugin source ...</echo>
     125                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     126                        <env key="LANG" value="C"/>
     127                        <arg value="up"/>
     128                        <arg value="."/>
     129                </exec>
     130                <echo>Updating ${plugin.jar} ...</echo>
     131                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     132                        <env key="LANG" value="C"/>
     133                        <arg value="up"/>
     134                        <arg value="../dist/${plugin.jar}"/>
     135                </exec>
     136        </target>
     137
     138        <!--
     139        ** commits the plugin.jar
     140        -->
     141        <target name="commit-dist">
     142                <echo>
     143***** Properties of published ${plugin.jar} *****
     144Commit message    : '${commit.message}'                                 
     145Plugin-Mainversion: ${plugin.main.version}
     146JOSM build version: ${coreversion.info.entry.revision}
     147Plugin-Version    : ${version.entry.commit.revision}
     148***** / Properties of published ${plugin.jar} *****                                     
     149                                       
     150Now commiting ${plugin.jar} ...
     151</echo>
     152                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     153                        <env key="LANG" value="C"/>
     154                        <arg value="-m '${commit.message}'"/>
     155                        <arg value="commit"/>
     156                        <arg value="${plugin.jar}"/>
     157                </exec>
     158        </target>
     159
     160        <!-- ** make sure svn is present as a command line tool ** -->
     161        <target name="ensure-svn-present">
     162                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
     163                        <env key="LANG" value="C" />
     164                        <arg value="--version" />
     165                </exec>
     166                <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
     167                        <!-- return code not set at all? Most likely svn isn't installed -->
     168                        <condition>
     169                                <not>
     170                                        <isset property="svn.exit.code" />
     171                                </not>
     172                        </condition>
     173                </fail>
     174                <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
     175                        <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
     176                        <condition>
     177                                <isfailure code="${svn.exit.code}" />
     178                        </condition>
     179                </fail>
     180        </target>
     181
     182        <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
     183        </target>
    56184</project>
  • applications/editors/josm/plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGuiPlugin.java

    r13497 r19082  
    1111import java.awt.event.ActionEvent;
    1212import java.awt.event.KeyEvent;
     13
    1314import org.openstreetmap.josm.Main;
    1415import org.openstreetmap.josm.actions.JosmAction;
    15 import org.openstreetmap.josm.gui.MapFrame;
     16import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
     17import org.openstreetmap.josm.gui.layer.GpxLayer;
    1618import org.openstreetmap.josm.gui.layer.Layer;
    1719import org.openstreetmap.josm.plugins.Plugin;
     
    2931    }
    3032
    31     class UploadAction extends JosmAction {
    32 
     33    class UploadAction extends JosmAction{
    3334        public UploadAction(){
    3435            super(tr("Upload Traces"), "UploadAction", tr("Uploads traces to openstreetmap.org"),
     
    4041            go.setVisible(true);
    4142        }
     43
     44        @Override
     45                protected void updateEnabledState() {
     46            if(Main.map == null
     47                    || Main.map.mapView == null
     48                    || Main.map.mapView.getActiveLayer() == null
     49                    || !(Main.map.mapView.getActiveLayer() instanceof GpxLayer)) {               
     50                setEnabled(false);
     51            } else {
     52                setEnabled(true);
     53            }
     54
     55                }               
    4256    }
    4357}
Note: See TracChangeset for help on using the changeset viewer.