Changeset 614 in josm


Ignore:
Timestamp:
Apr 19, 2008 5:55:29 PM (5 years ago)
Author:
framm
Message:
  • support for sub-menus in tagging presets (simply name them "Foo/Bar" instead of "Foo")
  • support for re-using the last used tags in a preset (set use_last_as_default=true in the preset definition)
  • presets for address tagging according to the "Karlsruhe Schema"
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/.settings/org.eclipse.jdt.core.prefs

    r444 r614  
    1 #Thu Nov 01 00:40:05 CET 2007 
     1#Sat Apr 19 17:30:55 CEST 2008 
    22eclipse.preferences.version=1 
    33org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning 
     
    2121org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning 
    2222org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning 
    23 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error 
     23org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore 
    2424org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore 
    2525org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error 
  • trunk/presets/presets.xml

    r579 r614  
    77 
    88<annotations> 
    9  
    109        <item name="Road" icon="presets/ways.png"> 
    1110    <label text="Road" /> 
     
    118117        </item> 
    119118 
     119    <item name="Addresses" icon="presets/addresses.png"> 
     120    <label text="These attributes are used for nodes:" /> 
     121       <text key="addr:street" text="Street name" use_last_as_default="true" delete_if_empty="true" /> 
     122       <text key="addr:housenumber" text="House number" default="" delete_if_empty="true" /> 
     123       <text key="addr:housename" text="House name" default="" delete_if_empty="true" /> 
     124       <text key="addr:postcode" text="Post code" use_last_as_default="true" delete_if_empty="true" /> 
     125       <text key="addr:city" text="City" use_last_as_default="true" delete_if_empty="true" /> 
     126    <label text=" " /> 
     127    <label text="These attributes are used for ways:" /> 
     128       <combo key="addr:interpolation" text="Numbering scheme:" values="odd,even,all" default="odd" /> 
     129    </item>    
     130     
    120131        <item name="Boundaries" icon="presets/boundaries.png"> 
    121132                <label text="Boundaries" /> 
     
    123134                <text key="name" text="Name:" default="" delete_if_empty="true" /> 
    124135 </item> 
     136  
     137  
    125138 
    126139        <item name="Landuse" icon="presets/landuse.png"> 
  • trunk/src/org/openstreetmap/josm/gui/preferences/TaggingPresetPreference.java

    r582 r614  
    99import java.awt.event.ActionListener; 
    1010import java.util.Collection; 
     11import java.util.HashMap; 
    1112import java.util.StringTokenizer; 
    1213 
     
    1920import javax.swing.JLabel; 
    2021import javax.swing.JList; 
     22import javax.swing.JMenu; 
    2123import javax.swing.JMenuItem; 
    2224import javax.swing.JOptionPane; 
     
    125127                else 
    126128                { 
     129                        HashMap<String,JMenu> submenus = new HashMap<String,JMenu>(); 
    127130                        for (final TaggingPreset p : taggingPresets) { 
    128131                                if (p.getValue(Action.NAME).equals(" ")) { 
    129132                                        Main.main.menu.presetsMenu.add(new JSeparator()); 
    130133                                } else { 
    131                                         Main.main.menu.presetsMenu.add(new JMenuItem(p)); 
     134                                        String name = (String) p.getValue(Action.NAME); 
     135                                        String[] sp = name.split("/"); 
     136                                        if (sp.length <= 1) { 
     137                                                Main.main.menu.presetsMenu.add(new JMenuItem(p)); 
     138                                        } else { 
     139                                                p.setName(sp[1]); 
     140                                                JMenu submenu = submenus.get(sp[0]); 
     141                                                if (submenu == null) { 
     142                                                        submenu = new JMenu(sp[0]); 
     143                                                        submenus.put(sp[0], submenu); 
     144                                                        Main.main.menu.presetsMenu.add(submenu); 
     145                                                } 
     146                                                submenu.add(new JMenuItem(p)); 
     147                                        } 
    132148                                } 
    133149                        }                
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java

    r593 r614  
    1616import java.net.URL; 
    1717import java.util.Collection; 
     18import java.util.HashMap; 
    1819import java.util.HashSet; 
    1920import java.util.LinkedHashMap; 
     
    4445import org.xml.sax.SAXException; 
    4546 
    46  
    4747/** 
    4848 * This class read encapsulate one tagging preset. A class method can 
     
    5353 */ 
    5454public class TaggingPreset extends AbstractAction { 
    55  
     55         
    5656        public static abstract class Item { 
    5757                public boolean focus = false; 
     
    7171                returnValue.values = new HashSet<String>(); 
    7272                for (OsmPrimitive s : sel) { 
    73                         returnValue.values.add(s.get(key)); 
     73                        String v = s.get(key); 
     74                        /* if (v != null) */ returnValue.values.add(v); 
    7475                } 
    7576                return returnValue; 
     
    9495         
    9596        public static class Text extends Item { 
     97                 
    9698                public String key; 
    9799                public String text; 
    98100                public String default_; 
    99101                public String originalValue; 
     102                public boolean use_last_as_default = false; 
    100103                public boolean delete_if_empty = false; 
    101104 
     
    106109                        // find out if our key is already used in the selection. 
    107110                        Usage usage = determineTextUsage(sel, key); 
    108                          
    109                         if (usage.values.size() == 1) { 
     111                        if (usage.values.size() == 1 && usage.values.toArray()[0] == null) { 
     112                                value = new JTextField(); 
     113                                if (use_last_as_default && lastValue.containsKey(key)) { 
     114                                        ((JTextField)value).setText(lastValue.get(key)); 
     115                                } else { 
     116                                        ((JTextField)value).setText(default_); 
     117                                } 
     118                        } else if (usage.values.size() == 1) { 
    110119                                // all objects use the same value 
    111120                                value = new JTextField(); 
     
    130139                                ((JTextField)value).getText(); 
    131140 
     141                        if (use_last_as_default) lastValue.put(key, v); 
    132142                        if (v.equals(originalValue) || (originalValue == null && v.length() == 0)) return; 
    133143 
     
    144154                public String text; 
    145155                public boolean default_ = false; // not used! 
     156                public boolean use_last_as_default = false; 
    146157 
    147158                private QuadStateCheckBox check; 
     
    205216                public boolean delete_if_empty = false; 
    206217                public boolean editable = true; 
     218                public boolean use_last_as_default = false; 
    207219 
    208220                private JComboBox combo; 
     
    285297        public Collection<Class<?>> types; 
    286298        private List<Item> data = new LinkedList<Item>(); 
     299        private static HashMap<String,String> lastValue = new HashMap<String,String>(); 
    287300 
    288301        /** 
Note: See TracChangeset for help on using the changeset viewer.