Changeset 614 in josm


Ignore:
Timestamp:
2008-04-19T17:55:29+02:00 (17 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.