Changeset 7517 in josm for trunk/src


Ignore:
Timestamp:
2014-09-09T22:25:13+02:00 (5 years ago)
Author:
Don-vip
Message:

code refactorization, code style, javadoc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java

    r7505 r7517  
    7272
    7373    private static int auto_increment_selected = 0;
     74    /** Translatation of "<different>". Use in combo boxes to display en entry matching several different values. */
    7475    public static final String DIFFERENT = tr("<different>");
    7576
     
    8687    public static class PresetListEntry {
    8788        public String value;
     89        /** The context used for translating {@link #value} */
    8890        public String value_context;
    8991        public String display_value;
     
    9193        public String icon;
    9294        public String icon_size;
     95        /** The localized version of {@link #display_value}. */
    9396        public String locale_display_value;
     97        /** The localized version of {@link #short_description}. */
    9498        public String locale_short_description;
    9599        private final File zipIcons = TaggingPresetReader.getZipIcons();
     
    118122        }
    119123
     124        /**
     125         * Returns the entry icon, if any.
     126         * @return the entry icon, or {@code null}
     127         */
    120128        public ImageIcon getIcon() {
    121129            return icon == null ? null : loadImageIcon(icon, zipIcons, parseInteger(icon_size));
     
    133141        }
    134142
     143        /**
     144         * Construxts a new {@code PresetListEntry}, uninitialized.
     145         */
    135146        public PresetListEntry() {
    136147        }
     
    164175        public EnumSet<TaggingPresetType> types;
    165176        public String key;
     177        /** The text to display */
    166178        public String text;
     179        /** The context used for translating {@link #text} */
    167180        public String text_context;
     181        /** The localized version of {@link #text}. */
    168182        public String locale_text;
    169183        public SearchCompiler.Match memberExpression;
     
    211225        public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
    212226            String cstring;
    213             if(count > 0 && !required) {
     227            if (count > 0 && !required) {
    214228                cstring = "0,"+count;
    215229            } else if(count > 0) {
     
    220234                cstring = "1-...";
    221235            }
    222             if(locale_text == null) {
    223                 if (text != null) {
    224                     if(text_context != null) {
    225                         locale_text = trc(text_context, fixPresetString(text));
    226                     } else {
    227                         locale_text = tr(fixPresetString(text));
    228                     }
    229                 }
     236            if (locale_text == null) {
     237                locale_text = getLocaleText(text, text_context, null);
    230238            }
    231239            p.add(new JLabel(locale_text+":"), GBC.std().insets(0,0,10,0));
    232240            p.add(new JLabel(key), GBC.std().insets(0,0,10,0));
    233241            p.add(new JLabel(cstring), types == null ? GBC.eol() : GBC.std().insets(0,0,10,0));
    234             if(types != null){
     242            if (types != null) {
    235243                JPanel pp = new JPanel();
    236244                for(TaggingPresetType t : types) {
     
    248256    public static enum MatchType {
    249257
    250         /**
    251          * Neutral, i.e., do not consider this item for matching.
    252          */
     258        /** Neutral, i.e., do not consider this item for matching. */
    253259        NONE("none"),
    254         /**
    255          * Positive if key matches, neutral otherwise.
    256          */
     260        /** Positive if key matches, neutral otherwise. */
    257261        KEY("key"),
    258         /**
    259          * Positive if key matches, negative otherwise.
    260          */
     262        /** Positive if key matches, negative otherwise. */
    261263        KEY_REQUIRED("key!"),
    262         /**
    263          * Positive if key and value matches, negative otherwise.
    264          */
     264        /** Positive if key and value matches, negative otherwise. */
    265265        KEY_VALUE("keyvalue");
    266266
     
    271271        }
    272272
     273        /**
     274         * Replies the associated textual value.
     275         * @return the associated textual value
     276         */
    273277        public String getValue() {
    274278            return value;
    275279        }
    276280
     281        /**
     282         * Determines the {@code MatchType} for the given textual value.
     283         * @param type the textual value
     284         * @return the {@code MatchType} for the given textual value
     285         */
    277286        public static MatchType ofString(String type) {
    278287            for (MatchType i : EnumSet.allOf(MatchType.class)) {
     
    288297        boolean hadKeys = false;
    289298        boolean hadEmpty = false;
     299
    290300        public boolean hasUniqueValue() {
    291301            return values.size() == 1 && !hadEmpty;
     
    295305            return values.isEmpty();
    296306        }
     307
    297308        public String getFirst() {
    298309            return values.first();
     
    310321    public abstract static class TaggingPresetTextItem extends TaggingPresetItem {
    311322
    312         /**
    313          * The text to display
    314          */
     323        /** The text to display */
    315324        public String text;
    316325
    317         /**
    318          * The context used for translating {@link #text}
    319          */
     326        /** The context used for translating {@link #text} */
    320327        public String text_context;
    321328
    322         /**
    323          * The localized version of {@link #text}
    324          */
     329        /** The localized version of {@link #text} */
    325330        public String locale_text;
    326331
    327332        protected final void initializeLocaleText(String defaultText) {
    328333            if (locale_text == null) {
    329                 if (text == null) {
    330                     locale_text = defaultText;
    331                 } else if (text_context != null) {
    332                     locale_text = trc(text_context, fixPresetString(text));
    333                 } else {
    334                     locale_text = tr(fixPresetString(text));
    335                 }
     334                locale_text = getLocaleText(text, text_context, defaultText);
    336335            }
    337336        }
     
    353352    }
    354353
     354    /**
     355     * Label type.
     356     */
    355357    public static class Label extends TaggingPresetTextItem {
    356358
     
    372374    }
    373375
     376    /**
     377     * Hyperlink type.
     378     */
    374379    public static class Link extends TaggingPresetTextItem {
    375380
    376         /**
    377          * The link to display
    378          */
     381        /** The link to display. */
    379382        public String href;
    380383
    381         /**
    382          * The localized version of {@link #href}
    383          */
     384        /** The localized version of {@link #href}. */
    384385        public String locale_href;
    385386
     
    474475    }
    475476
     477    /**
     478     * Horizontal separator type.
     479     */
    476480    public static class Space extends TaggingPresetItem {
    477481
     
    514518    }
    515519
     520    /**
     521     * Preset item associated to an OSM key.
     522     */
    516523    public abstract static class KeyedItem extends TaggingPresetItem {
    517524
    518525        public String key;
     526        /** The text to display */
    519527        public String text;
     528        /** The context used for translating {@link #text} */
    520529        public String text_context;
    521530        public String match = getDefaultMatch().getValue();
     
    548557    }
    549558
     559    /**
     560     * Invisible type allowing to hardcode an OSM key/value from the preset definition.
     561     */
    550562    public static class Key extends KeyedItem {
    551563
     564        /** The hardcoded value for key */
    552565        public String value;
    553566
     
    580593    }
    581594
     595    /**
     596     * Text field type.
     597     */
    582598    public static class Text extends KeyedItem {
    583599
     600        /** The localized version of {@link #text}. */
    584601        public String locale_text;
    585602        public String default_;
     
    643660            }
    644661            if (locale_text == null) {
    645                 if (text != null) {
    646                     if (text_context != null) {
    647                         locale_text = trc(text_context, fixPresetString(text));
    648                     } else {
    649                         locale_text = tr(fixPresetString(text));
    650                     }
    651                 }
     662                locale_text = getLocaleText(text, text_context, null);
    652663            }
    653664
     
    806817    }
    807818
     819    /**
     820     * Checkbox type.
     821     */
    808822    public static class Check extends KeyedItem {
    809823
     824        /** The localized version of {@link #text}. */
    810825        public String locale_text;
     826        /** the value to set when checked (default is "yes") */
    811827        public String value_on = OsmUtils.trueval;
     828        /** the value to set when unchecked (default is "no") */
    812829        public String value_off = OsmUtils.falseval;
     830        /** whether the off value is disabled in the dialog, i.e., only unset or yes are provided */
    813831        public boolean disable_off = false;
     832        /** ticked on/off (default is "off") */
    814833        public boolean default_ = false; // only used for tagless objects
    815834
     
    818837        private boolean def;
    819838
    820         @Override public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
     839        @Override
     840        public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel, boolean presetInitiallyMatches) {
    821841
    822842            // find out if our key is already used in the selection.
     
    825845            def = default_;
    826846
    827             if(locale_text == null) {
    828                 if(text_context != null) {
    829                     locale_text = trc(text_context, fixPresetString(text));
    830                 } else {
    831                     locale_text = tr(fixPresetString(text));
    832                 }
     847            if (locale_text == null) {
     848                locale_text = getLocaleText(text, text_context, null);
    833849            }
    834850
     
    837853                    // default is set and filling default values feature is disabled - check if all primitives are untagged
    838854                    for (OsmPrimitive s : sel)
    839                         if(s.hasKeys()) {
     855                        if (s.hasKeys()) {
    840856                            def = false;
    841857                        }
     
    873889        }
    874890
    875         @Override public void addCommands(List<Tag> changedTags) {
     891        @Override
     892        public void addCommands(List<Tag> changedTags) {
    876893            // if the user hasn't changed anything, don't create a command.
    877894            if (check.getState() == initialState && !def) return;
     
    883900                            null));
    884901        }
    885         @Override boolean requestFocusInWindow() {return check.requestFocusInWindow();}
     902
     903        @Override
     904        boolean requestFocusInWindow() {return check.requestFocusInWindow();}
    886905
    887906        @Override
     
    908927    }
    909928
     929    /**
     930     * Abstract superclass for combo box and multi-select list types.
     931     */
    910932    public abstract static class ComboMultiSelect extends KeyedItem {
    911933
     934        /** The localized version of {@link #text}. */
    912935        public String locale_text;
    913936        public String values;
    914937        public String values_from;
     938        /** The context used for translating {@link #values} */
    915939        public String values_context;
    916940        public String display_values;
     941        /** The localized version of {@link #display_values}. */
    917942        public String locale_display_values;
    918943        public String short_descriptions;
     944        /** The localized version of {@link #short_descriptions}. */
    919945        public String locale_short_descriptions;
    920946        public String default_;
     
    10001026            }
    10011027            if (locale_text == null) {
    1002                 locale_text = trc(text_context, fixPresetString(text));
     1028                locale_text = getLocaleText(text, text_context, null);
    10031029            }
    10041030            initialized = true;
     
    11871213    }
    11881214
     1215    /**
     1216     * Combobox type.
     1217     */
    11891218    public static class Combo extends ComboMultiSelect {
    11901219
     
    12751304        }
    12761305    }
     1306
     1307    /**
     1308     * Multi-select list type.
     1309     */
    12771310    public static class MultiSelect extends ComboMultiSelect {
    12781311
     
    13101343            }
    13111344            p.add(sp, GBC.eol().fill(GBC.HORIZONTAL));
    1312 
    1313 
    13141345        }
    13151346
     
    13931424    static String fixPresetString(String s) {
    13941425        return s == null ? s : s.replaceAll("'","''");
     1426    }
     1427
     1428    private static String getLocaleText(String text, String text_context, String defaultText) {
     1429        if (text == null) {
     1430            return defaultText;
     1431        } else if (text_context != null) {
     1432            return trc(text_context, fixPresetString(text));
     1433        } else {
     1434            return tr(fixPresetString(text));
     1435        }
    13951436    }
    13961437
     
    14281469    }
    14291470
    1430 
    14311471    static Usage determineTextUsage(Collection<OsmPrimitive> sel, String key) {
    14321472        Usage returnValue = new Usage();
     
    14451485        return returnValue;
    14461486    }
     1487
    14471488    static Usage determineBooleanUsage(Collection<OsmPrimitive> sel, String key) {
    14481489
     
    14571498        return returnValue;
    14581499    }
     1500
    14591501    protected static ImageIcon loadImageIcon(String iconName, File zipIcons, Integer maxSize) {
    14601502        final Collection<String> s = Main.pref.getCollection("taggingpreset.icon.sources", null);
Note: See TracChangeset for help on using the changeset viewer.