Changeset 2618 in josm


Ignore:
Timestamp:
12.12.2009 16:38:28 (2 years ago)
Author:
Gubaer
Message:

fixed #4153: Upload dialog's "Upload to '$URL'" isn't updated when the API URL is changed in the preferences
fixed #3642: JOSM offers to use open changeset from a different server

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/.classpath

    r2508 r2618  
    44        <classpathentry kind="src" path="test/unit"/> 
    55        <classpathentry kind="src" path="test/functional"/> 
    6         <classpathentry excluding="build/|dist/|src/|test/|test/unit/|test/functional/" including="data/|images/|presets/|styles/" kind="src" path=""/> 
    7         <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JDK 5"/> 
     6        <classpathentry excluding="build/|dist/|src/|test/|test/unit/|test/functional/|test/build/" including="images/|presets/|styles/" kind="src" path=""/> 
    87        <classpathentry kind="lib" path="lib/metadata-extractor-2.3.1-nosun.jar"/> 
    98        <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> 
     
    1817        <classpathentry kind="lib" path="test/lib/fest/jcip-annotations-1.0.jar"/> 
    1918        <classpathentry kind="lib" path="test/lib/fest/MRJToolkitStubs-1.0.jar"/> 
     19        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
     20        <classpathentry exported="true" kind="con" path="GROOVY_SUPPORT"/> 
     21        <classpathentry kind="lib" path="test/build"/> 
    2022        <classpathentry kind="output" path="bin"/> 
    2123</classpath> 
  • trunk/.project

    r2453 r2618  
    2323        </buildSpec> 
    2424        <natures> 
     25                <nature>org.eclipse.jdt.groovy.core.groovyNature</nature> 
    2526                <nature>org.eclipse.jdt.core.javanature</nature> 
    2627        </natures> 
  • trunk/.settings/org.eclipse.jdt.core.prefs

    r2579 r2618  
    1 #Sun Dec 06 09:20:07 CET 2009 
     1#Tue Dec 01 19:01:34 CET 2009 
    22eclipse.preferences.version=1 
    33org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 
     
    1111org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 
    1212org.eclipse.jdt.core.compiler.problem.autoboxing=ignore 
    13 org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning 
    14 org.eclipse.jdt.core.compiler.problem.deadCode=warning 
    1513org.eclipse.jdt.core.compiler.problem.deprecation=warning 
    1614org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled 
     
    3230org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning 
    3331org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning 
    34 org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning 
    35 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning 
     32org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore 
    3633org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore 
    37 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning 
    3834org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error 
    3935org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning 
     
    318314org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert 
    319315org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert 
     316org.eclipse.jdt.core.formatter.join_lines_in_comments=true 
     317org.eclipse.jdt.core.formatter.join_wrapped_lines=true 
    320318org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false 
    321319org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false 
  • trunk/build.xml

    r2507 r2618  
    1414        <property name="src.dir" value="src" /> 
    1515        <property name="build.dir" value="build"/> 
    16     <!-- build parameter: compression level (ant -Dclevel=N) 
     16        <!-- build parameter: compression level (ant -Dclevel=N) 
    1717             N ranges from 0 (no compression) to 9 (maximum compression) 
    1818             default: 9 --> 
    19     <condition property="clevel" value="${clevel}" else="9"> 
    20         <isset property="clevel" /> 
    21     </condition> 
     19        <condition property="clevel" value="${clevel}" else="9"> 
     20                <isset property="clevel" /> 
     21        </condition> 
    2222 
    2323        <!-- Java classpath addition (all jar files to compile tests with this) --> 
     
    2828        </path> 
    2929 
    30          
     30 
    3131        <!-- 
    3232          ** Used by Eclipse ant builder for updating  
    3333          ** the REVISION file used by JOSM 
    34         -->        
     34        --> 
    3535        <target name="create-revision-eclipse"> 
    3636                <property name="revision.dir" value="bin"/> 
     
    4040        <!-- 
    4141          ** Creates the REVISION file to be included in the distribution 
    42           -->      
     42          --> 
    4343        <target name="create-revision"> 
    4444                <property name="revision.dir" value="${build.dir}"/> 
    4545                <exec append="false" output="REVISION.XML" executable="svn" failifexecutionfails="false"> 
    46                                 <env key="LANG" value="C"/> 
    47                                 <arg value="info"/> 
    48                                 <arg value="--xml"/> 
    49                                 <arg value="."/> 
     46                        <env key="LANG" value="C"/> 
     47                        <arg value="info"/> 
     48                        <arg value="--xml"/> 
     49                        <arg value="."/> 
    5050                </exec> 
    5151                <xmlproperty file="REVISION.XML" prefix="version" keepRoot="false" collapseAttributes="true"/> 
    5252                <delete file="REVISION.XML" /> 
    5353                <tstamp> 
    54                       <format property="build.tstamp" pattern="yyyy-MM-dd HH:mm:ss"/> 
     54                        <format property="build.tstamp" pattern="yyyy-MM-dd HH:mm:ss"/> 
    5555                </tstamp> 
    5656 
     
    6262Is-Local-Build: true 
    6363Build-Date: ${build.tstamp}              
    64 </echo>                                          
     64</echo> 
    6565        </target> 
    66                  
     66 
    6767 
    6868        <target name="dist" depends="compile,create-revision"> 
     
    7878                <property name="version.entry.commit.revision" value="UNKNOWN"/> 
    7979                <property name="version.entry.commit.date" value="UNKNOWN"/> 
    80             <echo>Revision ${version.entry.commit.revision}</echo> 
     80                <echo>Revision ${version.entry.commit.revision}</echo> 
    8181                <copy file="CONTRIBUTION" todir="build"/> 
    8282                <copy file="README" todir="build"/> 
    8383                <copy file="LICENSE" todir="build"/> 
    8484 
    85         <!-- styles --> 
     85                <!-- styles --> 
    8686                <copy file="styles/standard/elemstyles.xml" todir="build/styles/standard"/> 
    8787 
    88         <!-- css--> 
     88                <!-- css--> 
    8989                <copy file="src/org/openstreetmap/josm/gui/help/help-browser.css" todir="build/org/openstreetmap/josm/gui/help"/> 
    9090 
     
    9292                <delete file="dist/josm-custom.jar"/> 
    9393                <jar destfile="dist/josm-custom.jar" basedir="build" level="${clevel}"> 
    94         <!-- add attribute excludes="**/*BZip2*,**/*Bzip2*" to create a non-bzip2 supporting jar --> 
     94                        <!-- add attribute excludes="**/*BZip2*,**/*Bzip2*" to create a non-bzip2 supporting jar --> 
    9595                        <manifest> 
    9696                                <attribute name="Main-class" value="JOSM" /> 
     
    166166                        <compilerarg value="-Xlint:unchecked"/> 
    167167                </javac> 
     168                <javac srcdir="${src.dir}:${test.dir}/functional" classpathref="test.classpath" destdir="${test.dir}/${build.dir}" 
     169                                                target="1.5" source="1.5" debug="on" encoding="UTF-8"> 
     170                        <compilerarg value="-Xlint:deprecation"/> 
     171                        <compilerarg value="-Xlint:unchecked"/> 
     172                </javac> 
    168173        </target> 
    169174 
    170     <target name="test" depends="test-compile"> 
    171         <junit printsummary="yes"> 
    172                 <sysproperty key="josm.home" value="${test.dir}/config/unit-josm.home"/> 
    173             <classpath> 
    174                 <path refid="test.classpath"/> 
    175                 <pathelement path="${test.dir}/${build.dir}"/> 
    176                 <pathelement path="${test.dir}/config"/> 
    177             </classpath> 
    178             <formatter type="plain"/> 
    179             <batchtest fork="no" todir="${test.dir}/report"> 
    180                 <fileset dir="${test.dir}/unit" includes="**/*.java"/> 
    181             </batchtest> 
    182         </junit> 
    183     </target> 
     175        <target name="test" depends="test-compile"> 
     176                <junit printsummary="yes"> 
     177                        <sysproperty key="josm.home" value="${test.dir}/config/unit-josm.home"/> 
     178                        <classpath> 
     179                                <path refid="test.classpath"/> 
     180                                <pathelement path="${test.dir}/${build.dir}"/> 
     181                                <pathelement path="${test.dir}/config"/> 
     182                        </classpath> 
     183                        <formatter type="plain"/> 
     184                        <batchtest fork="no" todir="${test.dir}/report"> 
     185                                <fileset dir="${test.dir}/unit" includes="**/*.java"/> 
     186                        </batchtest> 
     187                </junit> 
     188        </target> 
    184189 
    185190</project> 
  • trunk/src/org/openstreetmap/josm/data/Preferences.java

    r2542 r2618  
    2424import java.util.TreeMap; 
    2525import java.util.Map.Entry; 
     26import java.util.concurrent.CopyOnWriteArrayList; 
    2627import java.util.regex.Matcher; 
    2728import java.util.regex.Pattern; 
     
    5051    private File preferencesDirFile = null; 
    5152 
     53    public static interface PreferenceChangeEvent{ 
     54        public String getKey(); 
     55        public String getOldValue(); 
     56        public String getNewValue(); 
     57    } 
     58 
    5259    public static interface PreferenceChangedListener { 
    53         void preferenceChanged(String key, String newValue); 
     60        void preferenceChanged(PreferenceChangeEvent e); 
     61    } 
     62 
     63    private static class DefaultPreferenceChangeEvent implements PreferenceChangeEvent { 
     64        private String key; 
     65        private String oldValue; 
     66        private String newValue; 
     67 
     68        public DefaultPreferenceChangeEvent(String key, String oldValue, String newValue) { 
     69            this.key = key; 
     70            this.oldValue = oldValue; 
     71            this.newValue = newValue; 
     72        } 
     73 
     74        public String getKey() { 
     75            return key; 
     76        } 
     77        public void setKey(String key) { 
     78            this.key = key; 
     79        } 
     80        public String getOldValue() { 
     81            return oldValue; 
     82        } 
     83        public void setOldValue(String oldValue) { 
     84            this.oldValue = oldValue; 
     85        } 
     86        public String getNewValue() { 
     87            return newValue; 
     88        } 
     89        public void setNewValue(String newValue) { 
     90            this.newValue = newValue; 
     91        } 
    5492    } 
    5593 
     
    96134    } 
    97135 
    98     public final ArrayList<PreferenceChangedListener> listener = new ArrayList<PreferenceChangedListener>(); 
     136    private final CopyOnWriteArrayList<PreferenceChangedListener> listeners = new CopyOnWriteArrayList<PreferenceChangedListener>(); 
     137 
     138 
     139    public void addPreferenceChangeListener(PreferenceChangedListener listener) { 
     140        if (listener != null && ! listeners.contains(listener)) { 
     141            listeners.add(listener); 
     142        } 
     143    } 
     144 
     145    public void removePreferenceChangeListener(PreferenceChangedListener listener) { 
     146        if (listener != null && listeners.contains(listener)) { 
     147            listeners.remove(listener); 
     148        } 
     149    } 
     150 
     151    protected void firePrefrenceChanged(String key, String oldValue, String newValue) { 
     152        PreferenceChangeEvent evt = new DefaultPreferenceChangeEvent(key, oldValue, newValue); 
     153        for (PreferenceChangedListener l : listeners) { 
     154            l.preferenceChanged(evt); 
     155        } 
     156    } 
    99157 
    100158    /** 
     
    289347                System.out.println(tr("Warning: failed to persist preferences to ''{0}''", getPreferenceFile().getAbsoluteFile())); 
    290348            } 
    291             firePreferenceChanged(key, value); 
     349            firePrefrenceChanged(key, oldvalue, value); 
    292350            return true; 
    293351        } 
     
    311369    } 
    312370 
    313     private final void firePreferenceChanged(final String key, final String value) { 
    314         for (final PreferenceChangedListener l : listener) { 
    315             l.preferenceChanged(key, value); 
    316         } 
    317     } 
    318371 
    319372    /** 
     
    618671    synchronized public String getCollectionAsString(final String key) { 
    619672        String s = get(key); 
    620         if(s != null && s.length() != 0) 
     673        if(s != null && s.length() != 0) { 
    621674            s = s.replaceAll("\u001e",","); 
     675        } 
    622676        return s; 
    623677    } 
  • trunk/src/org/openstreetmap/josm/data/osm/ChangesetCache.java

    r2613 r2618  
    1010import java.util.logging.Logger; 
    1111 
    12 public class ChangesetCache { 
     12import org.openstreetmap.josm.Main; 
     13import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent; 
     14import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener; 
     15 
     16public class ChangesetCache implements PreferenceChangedListener{ 
    1317    static private final Logger logger = Logger.getLogger(ChangesetCache.class.getName()); 
    1418    static private final ChangesetCache instance = new ChangesetCache(); 
     
    2428 
    2529    private ChangesetCache() { 
     30        Main.pref.addPreferenceChangeListener(this); 
    2631    } 
    2732 
     
    135140        return ret; 
    136141    } 
     142 
     143    /* ------------------------------------------------------------------------- */ 
     144    /* interface PreferenceChangedListener                                       */ 
     145    /* ------------------------------------------------------------------------- */ 
     146    public void preferenceChanged(PreferenceChangeEvent e) { 
     147        if (e.getKey() == null || ! e.getKey().equals("osm-server.url")) 
     148            return; 
     149 
     150        // clear the cache when the API url changes 
     151        if (e.getOldValue() == null || e.getNewValue() == null || !e.getOldValue().equals(e.getNewValue())) { 
     152            clear(); 
     153        } 
     154    } 
    137155} 
  • trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java

    r2613 r2618  
    3030import org.openstreetmap.josm.Main; 
    3131import org.openstreetmap.josm.data.APIDataSet; 
     32import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent; 
     33import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener; 
    3234import org.openstreetmap.josm.data.osm.Changeset; 
    3335import org.openstreetmap.josm.data.osm.OsmPrimitive; 
     
    4547 * 
    4648 */ 
    47 public class UploadDialog extends JDialog implements PropertyChangeListener{ 
     49public class UploadDialog extends JDialog implements PropertyChangeListener, PreferenceChangedListener{ 
    4850    protected static final Logger logger = Logger.getLogger(UploadDialog.class.getName()); 
    4951 
     
    221223                } 
    222224        ); 
     225 
     226        Main.pref.addPreferenceChangeListener(this); 
    223227    } 
    224228 
     
    453457        } 
    454458    } 
     459 
     460    /* -------------------------------------------------------------------------- */ 
     461    /* Interface PreferenceChangedListener                                        */ 
     462    /* -------------------------------------------------------------------------- */ 
     463    public void preferenceChanged(PreferenceChangeEvent e) { 
     464        if (e.getKey() == null || ! e.getKey().equals("osm-server.url")) 
     465            return; 
     466        if (e.getNewValue() == null) { 
     467            setTitle(tr("Upload")); 
     468        } else { 
     469            setTitle(tr("Upload to ''{0}''", e.getNewValue())); 
     470        } 
     471    } 
    455472} 
  • trunk/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java

    r2450 r2618  
    3434import org.openstreetmap.josm.actions.RenameLayerAction; 
    3535import org.openstreetmap.josm.data.Bounds; 
     36import org.openstreetmap.josm.data.Preferences.PreferenceChangeEvent; 
    3637import org.openstreetmap.josm.data.Preferences.PreferenceChangedListener; 
    3738import org.openstreetmap.josm.data.coor.EastNorth; 
     
    113114        setAssociatedFile(associatedFile); 
    114115        this.data = data; 
    115         Main.pref.listener.add(this); 
     116        Main.pref.addPreferenceChangeListener(this); 
    116117    } 
    117118 
     
    284285    } 
    285286 
    286     public void preferenceChanged(String key, String newValue) { 
    287         if (Main.map != null && (key.equals("draw.rawgps.lines") || key.equals("draw.rawgps.lines.force"))) { 
     287    public void preferenceChanged(PreferenceChangeEvent e) { 
     288        if (Main.map != null && (e.getKey().equals("draw.rawgps.lines") || e.getKey().equals("draw.rawgps.lines.force"))) { 
    288289            Main.map.repaint(); 
    289290        } 
     
    291292 
    292293    @Override public void destroy() { 
    293         Main.pref.listener.remove(RawGpsLayer.this); 
     294        Main.pref.removePreferenceChangeListener(this); 
    294295    } 
    295296} 
Note: See TracChangeset for help on using the changeset viewer.