Changeset 6190 in josm


Ignore:
Timestamp:
2013-08-26T01:17:52+02:00 (8 years ago)
Author:
Don-vip
Message:

fix #8973 - presets: allow text attribute on optional item to set custom text + fix traffic_light/pedestrian corssing (modified patch by skyper)

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/defaultpresets.xml

    r6189 r6190  
    10561056                  pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Tag:highway=traffic_signals"
    10571057                  ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:highway=traffic_signals" />
     1058            <label text="Edit Traffic Signal" />
     1059            <space />
    10581060            <key key="highway" value="traffic_signals" />
    1059             <optional>
     1061            <optional text="Optional crossing attributes:">
    10601062                 <combo key="crossing" text="Pedestrian crossing type" values="uncontrolled,traffic_signals,island,unmarked,no,unknown" />
     1063                 <combo key="crossing_ref" text="Crossing type name (UK)" values="zebra,pelican,toucan,puffin,pegasus,tiger" />
     1064                 <check key="supervised" text="Crossing attendant" default="off" />
     1065                 <check key="bicycle" text="Cross by bicycle" default="off" />
    10611066                 <check key="horse" text="Cross on horseback" default="off" />
    1062                  <check key="bicycle" text="Cross by bicycle" default="off" />
    1063                  <check key="supervised" text="Crossing attendant" default="off" />
    1064                  <combo key="crossing_ref" text="Crossing type name (UK)" values="zebra,pelican,toucan,puffin,pegasus,tiger" />
    10651067            </optional>
    10661068        </item>
     
    10791081                  ru.href="http://wiki.openstreetmap.org/wiki/RU:Tag:highway=mini_roundabout" />
    10801082            <key key="highway" value="mini_roundabout" />
     1083            <label text="Edit Mini-Roundabout" />
     1084            <space />
    10811085            <combo key="direction" text="Direction" values="clockwise" />
    10821086        </item>
     
    10891093                  pt_BR.href="http://wiki.openstreetmap.org/wiki/Pt-br:Key:crossing"
    10901094                  ru.href="http://wiki.openstreetmap.org/wiki/RU:Key:crossing" />
    1091             <label text="Edit Crossing" />
     1095            <label text="Edit Pedestrian Crossing" />
     1096            <space />
    10921097            <key key="highway" value="crossing" />
    1093             <combo key="crossing" text="Type" values="uncontrolled,traffic_signals,island,unmarked,no,unknown" />
     1098            <combo key="crossing" text="Pedestrian crossing type" values="uncontrolled,traffic_signals,island,unmarked,no,unknown" />
     1099            <combo key="crossing_ref" text="Crossing type name (UK)" values="zebra,pelican,toucan,puffin,pegasus,tiger" />
     1100            <check key="supervised" text="Crossing attendant" default="off" />
    10941101            <check key="bicycle" text="Cross by bicycle" default="off" />
    10951102            <check key="horse" text="Cross on horseback" default="off" />
    1096             <check key="supervised" text="Crossing attendant" default="off" />
    1097             <combo key="crossing_ref" text="Type name (UK)" values="zebra,pelican,toucan,puffin,pegasus,tiger" />
    10981103        </item>
    10991104        <item name="Traffic Calming" icon="presets/chicane.png" type="node,way">
     
    11071112                  ru.href="http://wiki.openstreetmap.org/wiki/RU:Key:traffic_calming"/>
    11081113            <label text="Edit Traffic Calming" />
     1114            <space />
    11091115            <combo key="traffic_calming" text="Type" values="yes,bump,chicane,choker,cushion,hump,island,rumble_strip,table" match="key" />
    11101116        </item>
  • trunk/data/tagging-preset.xsd

    r6114 r6190  
    7171        <complexType name="optional">
    7272                <group ref="tns:optional_elements" maxOccurs="unbounded" />
     73        <attribute name="text" type="string" />
     74        <attribute name="text_context" type="string" />
    7375        </complexType>
    7476
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java

    r6158 r6190  
    295295    }
    296296
    297     public static class Label extends TaggingPresetItem {
    298 
     297    /**
     298     * A tagging preset item displaying a localizable text.
     299     * @since 6190
     300     */
     301    public static abstract class TaggingPresetTextItem extends TaggingPresetItem {
     302
     303        /**
     304         * The text to display
     305         */
    299306        public String text;
     307       
     308        /**
     309         * The context used for translating {@link #text}
     310         */
    300311        public String text_context;
     312       
     313        /**
     314         * The localized version of {@link #text}
     315         */
    301316        public String locale_text;
    302317
    303         @Override
    304         public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    305             if (locale_text == null) {
    306                 if (text_context != null) {
    307                     locale_text = trc(text_context, fixPresetString(text));
    308                 } else {
    309                     locale_text = tr(fixPresetString(text));
    310                 }
    311             }
    312             p.add(new JLabel(locale_text), GBC.eol());
    313             return false;
    314         }
    315 
    316         @Override
    317         public void addCommands(List<Tag> changedTags) {
    318         }
    319 
    320         @Override
    321         public String toString() {
    322             return "Label ["
    323                     + (text != null ? "text=" + text + ", " : "")
    324                     + (text_context != null ? "text_context=" + text_context
    325                             + ", " : "")
    326                     + (locale_text != null ? "locale_text=" + locale_text : "")
    327                     + "]";
    328         }
    329     }
    330 
    331     public static class Link extends TaggingPresetItem {
    332 
    333         public String href;
    334         public String text;
    335         public String text_context;
    336         public String locale_text;
    337         public String locale_href;
    338 
    339         @Override
    340         public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     318        protected final void initializeLocaleText(String defaultText) {
    341319            if (locale_text == null) {
    342320                if (text == null) {
    343                     locale_text = tr("More information about this feature");
     321                    locale_text = defaultText;
    344322                } else if (text_context != null) {
    345323                    locale_text = trc(text_context, fixPresetString(text));
     
    348326                }
    349327            }
     328        }
     329
     330        @Override
     331        void addCommands(List<Tag> changedTags) {
     332        }
     333
     334        protected String fieldsToString() {
     335            return (text != null ? "text=" + text + ", " : "")
     336                    + (text_context != null ? "text_context=" + text_context + ", " : "")
     337                    + (locale_text != null ? "locale_text=" + locale_text : "");
     338        }
     339       
     340        @Override
     341        public String toString() {
     342            return getClass().getSimpleName() + " [" + fieldsToString() + "]";
     343        }
     344    }
     345
     346    public static class Label extends TaggingPresetTextItem {
     347
     348        @Override
     349        public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     350            initializeLocaleText(null);
     351            p.add(new JLabel(locale_text), GBC.eol());
     352            return false;
     353        }
     354    }
     355
     356    public static class Link extends TaggingPresetTextItem {
     357
     358        /**
     359         * The link to display
     360         */
     361        public String href;
     362       
     363        /**
     364         * The localized version of {@link #href}
     365         */
     366        public String locale_href;
     367
     368        @Override
     369        public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     370            initializeLocaleText(tr("More information about this feature"));
    350371            String url = locale_href;
    351372            if (url == null) {
     
    359380
    360381        @Override
    361         public void addCommands(List<Tag> changedTags) {
     382        protected String fieldsToString() {
     383            return super.fieldsToString()
     384                    + (href != null ? "href=" + href + ", " : "")
     385                    + (locale_href != null ? "locale_href=" + locale_href + ", " : "");
    362386        }
    363387    }
     
    389413    }
    390414
    391     public static class Optional extends TaggingPresetItem {
     415    public static class Optional extends TaggingPresetTextItem {
    392416
    393417        // TODO: Draw a box around optional stuff
    394418        @Override
    395419        public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
     420            initializeLocaleText(tr("Optional Attributes:"));
    396421            p.add(new JLabel(" "), GBC.eol()); // space
    397             p.add(new JLabel(tr("Optional Attributes:")), GBC.eol());
     422            p.add(new JLabel(locale_text), GBC.eol());
    398423            p.add(new JLabel(" "), GBC.eol()); // space
    399424            return false;
    400         }
    401 
    402         @Override
    403         public void addCommands(List<Tag> changedTags) {
    404         }
    405 
    406         @Override
    407         public String toString() {
    408             return "Optional";
    409425        }
    410426    }
Note: See TracChangeset for help on using the changeset viewer.