62 | | Create instructions for the user: |
63 | | '''<label>''':: |
64 | | Labels are static texts for display. ''text'' is a required attribute. |
65 | | '''<optional>''':: |
66 | | Used to group some optional elements of an item. Possibly equivalent to <label text="Optional Attributes:"/> |
67 | | '''<space/>''':: |
68 | | Add some space (ie a newline) in the preset display. Possibly equivalent to <label text=" "/> |
69 | | '''<link>''':: |
70 | | Specify a web link for this feature or to anything else of use. The ''href'' attribute is required. |
71 | | Attribute entry and selection dialog boxes: |
72 | | '''<text>''':: |
73 | | A text edit field to enter any arbitrary string from the user. ''key'' is mandatory, ''text'', ''default'' and ''required'' is optional |
74 | | '''<combo>''':: |
75 | | Displays a multiple choice combo box. ''key'' and ''values'' are mandatory and ''text'', ''default'', ''editable'' and ''required'' is optional. |
76 | | If editable is true (default), combo boxes can be edited as if they were text fields (additional to the drop down menu). Non editable |
77 | | combo boxes can only contain one of the specified values. |
78 | | |
79 | | '''<multiselect>''':: |
80 | | Displays a list from which zero or more items can be chosen. ''key'' and ''values'' are mandatory, and ''text'', ''default'', ''delimiter'', and ''required'' are optional. The selected values will be concatenated with the specified delimiter (default: semicolon) and written to the tag value. If a tag value has already been set when the preset dialog is opened, the multiselect will attempt to mark the appropriate items in the list as select. If the tag value cannot be represented by a combination of choices in the list, then the list will be disabled so that the user cannot accidentally overwrite a custom value. In contrast to the "combo" element, the "multiselect" expects the list of values, descriptions etc. to use the specified delimiter, i.e. by default you will have to use a semicolon. You can specify delimiter="," but then a comma will also be used in the tag value. |
81 | | '''<check>''':: |
82 | | A checkbox which the user can only select or deselect. The ''key'' attribute is mandatory. ''text'', ''default'' and ''required'' is optional. |
83 | | Set a key value pair: |
84 | | '''<key>''':: |
85 | | This tag will always set a key to a specific value. ''key'' is required and if ''value'' is present, the key will be set. If ''value'' attribute is ommited, the key is removed. |
| 75 | \\ |
| 76 | |
| 77 | ==== Preset window layout ==== |
| 78 | <label />:: |
| 79 | Labels are static texts for display. `text=""` is a required attribute, `icon=""` and `icon_size=""` are optional. |
| 80 | <space />:: |
| 81 | Add some space (i.e. a newline). |
| 82 | <optional>:: |
| 83 | Used to group some optional elements of an item. The `text=""` attribute is optional. If used without `text=""` then this is equivalent to `<space /><label text="Optional Attributes:" /><space />` |
| 84 | <item_separator />:: |
| 85 | Add a horizontal separator line between items. |
| 86 | <link />:: |
| 87 | Specify a web link for this feature or to anything else of use. Either the `wiki=""` (referring to an OSM wiki page, e.g. `"Tag:leisure=park"`) or the `href=""` (full URL) attribute is required. When the `wiki=""` attribute is used the link points to the wiki page of the language JOSM is set to. If it doesn't exist the English page is shown. If using `wiki=""`, the OSM wiki page must not be URL encoded, e.g., it must not be `"Tag:leisure%3Dpark"` and must instead be `"Tag:leisure=park"`. |
| 88 | <checkgroup>:: |
| 89 | To group checks. The `columns=""` attribute is required. |
| 90 | <roles>:: |
| 91 | This is required around `<role />` and adds the heading ("Available roles role count elements") to the table which is generated by several `<role />`. |
| 92 | <role />:: |
| 93 | To specify possible roles of members in relations. The `key=""` attribute is required, `text=""`, `requisite=""`, `count=""`, `type=""`, `member_expression=""` and `regexp=""` are optional. |
| 94 | <preset_link />:: |
| 95 | Adds a link to an other preset with a label on top. The `preset_name=""` attribute is required, `text=""` to override the label (default is `"Edit also …"`) and `text_context=""` are optional. A sequence of `<preset_link />` without `text=""` or a identical `text=""` value are grouped below one label. \\ |
| 96 | **Watch out** for presets with identical **`name=""`** as it is not predictable to which preset the link will lead to, see #12716. \\ |
| 97 | Having the same tag in both presets does not work, see #18992. \\ |
| 98 | Using `<preset_link />` in presets opened from [wikitr:/Help/Dialog/RelationEditor relation editor] produces exceptions, see #20044. |
| 99 | \\ |
| 100 | |
| 101 | ==== Set a fixed key value pair ==== |
| 102 | <key />:: |
| 103 | This tag will always set a key to a specific value. `key=""` is required and if `value=""` is present, the key will be set. If `value=""` attribute is omitted, the key is removed. The `match=""` attribute is optional. |
| 104 | \\ |
| 105 | |
| 106 | ==== Attribute entry and selection dialog boxes ====#EntrySelectionBoxes |
| 107 | <text />:: |
| 108 | A text edit field to enter any arbitrary string from the user. `key=""` is mandatory, `text=""`, `default=""`, `use_last_as_default=""`, `auto_increment=""`, `length=""`, `alternative_autocomplete_keys=""`, `match=""`, `icon=""` and `icon_size=""` (both since r17605) are optional. |
| 109 | <combo />:: |
| 110 | Displays a multiple choice combo box. `key=""` and `values=""` are mandatory, `text=""`, `default=""`, `editable=""`, `delimiter=""`, `values_from=""`, `display_values=""`, `short_descriptions=""`, `use_last_as_default=""`, `values_searchable=""`, `length=""`, `values_no_i18n=""`, `values_sort=""`, `match=""`, `icon=""` and `icon_size=""` (both since r17605) are optional.\\ |
| 111 | If `editable=""` is `true` (default), combo boxes can be edited as if they were text fields (additional to the drop down menu). Non editable combo boxes can only contain one of the specified values.\\ |
| 112 | If the key is `colour` or `colour:*` or `*:colour`, a color preview and color picker is added on the right (see #8352). |
| 113 | [=#multiselect] |
| 114 | <multiselect />:: |
| 115 | Displays a list from which zero or more items can be chosen. `key=""` and `values=""` are mandatory, and `text=""`, `default=""`, `delimiter=""`, `values_from=""`, `rows=""`, `display_values=""`, `short_descriptions=""`, `use_last_as_default=""`, `values_searchable=""`, `values_no_i18n=""`, `values_sort=""`, `match=""`, `icon=""` and `icon_size=""` (both since r17605) are optional. The selected values will be concatenated with the specified delimiter (default: semicolon, `;`) and written to the tag value. If a tag value has already been set when the preset dialog is opened, the `<multiselect />` will attempt to mark the appropriate items in the list as select. If the tag value cannot be represented by a combination of choices in the list, then the list will be disabled so that the user cannot accidentally overwrite a custom value. In contrast to the `<combo />` element, the `<multiselect />` expects the list of values, descriptions etc. to use the specified delimiter, i.e. by default you will have to use a semicolon. You can specify `delimiter=","` but then a comma will also be used in the tag value. |
| 116 | <list_entry />:: |
| 117 | Used in `<combo>` and `<multiselect>`. More information see `short_descriptions=""`, [#short_description below]. The attributes are `value=""`, `display_value=""`, `short_description=""`, `icon=""` and `icon_size=""`. |
| 118 | <check />:: |
| 119 | A checkbox which the user can select, deselect or set as unset. The `key=""` attribute is mandatory. `text=""`, `default=""`, `match=""`, `value_on=""` , `value_off=""`, `disable_off=""`, `icon=""` and `icon_size=""` (both since r15437) are optional. |
| 120 | \\ |
| 121 | |
| 122 | ==== Templates ==== |
| 123 | <chunk>:: |
| 124 | To define a template of elements for later (repeated) use. The `id=""` attribute is mandatory. |
| 125 | <reference>:: |
| 126 | To include an earlier defined template. The `ref=""` attribute is mandatory. |
| 127 | \\ |
103 | | '''default="default_value"''':: |
104 | | The default value for the item. If not specified, the current value of the key is chosen as default (if applicable). |
105 | | '''delete_if_empty="true"''':: |
106 | | If the text (or combo) box is left empty, the key is removed instead inserting an key with empty value. Default is "false". |
107 | | '''values="entry1,entry2,entry3"''':: |
108 | | A list of entries (for the combo box and multiselect). The list has to be separated by commas (for the combo box) or by the specified delimiter (for the multiselect). If a value contains the delimiter, the delimiter may be escaped with a backslash. If a value contains a backslash, it must also be escaped with a backslash. |
109 | | '''values_context="context"''':: |
110 | | Translation context for name attribute to separate equals words with different meaning (not required for in-file translations). |
111 | | '''display_values="Entry1,Entry2,Entry3"''':: |
112 | | A list of entries that is displayed to the user. Must be the same number of entries as values and '''editable''' must be false or not specified. For the delimiter character and escaping, see the remarks at ''values''. |
113 | | '''value="foobar"''':: |
114 | | Specify a value to be entered in the <key> tag. |
115 | | '''value_on="foobar"''':: |
116 | | Specify the true value to be entered in the <key> tag (default is "yes"). |
117 | | '''value_off="foobar"''':: |
118 | | Specify the false value to be entered in the <key> tag (default is "no"). |
119 | | '''editable="false"''':: |
120 | | The combo box is readonly, which means that the user can only select an item in the list. |
121 | | '''use_last_as_default="true"''':: |
122 | | For combo boxes or text fields the last value is used as default. Using "force" enforces this behaviour also for already tagged objects. |
123 | | '''required="true"''':: |
124 | | Preset is not valid unless value for this key is entered. Used by PropertiesDialog to show list of presets for selected object. |
125 | | '''rows="count"''':: |
126 | | Specify the number of rows in multiselect entry. |
127 | | |
128 | | To support translations, all textual elements may be used in translated form. E.g. "de.name" would represent the name in case German language support is loaded. |
129 | | |
130 | | === Icon handling === |
131 | | There are 3 different ways to source icons: |
132 | | |
133 | | * Icons distributed with JOSM can be entered directly with the path (relative to JOSM's internal image directory). Hunt through [http://josm.openstreetmap.de/svn/trunk/data/defaultpresets.xml this page] for the names of existing icons. |
134 | | * New icons can be directly referenced using a http-link. These are downloaded and cached internally. |
135 | | * Since JOSM version 2289 Zip-Files are supported. |
136 | | * The zip file must contain at least one file with extension xml. |
137 | | * Icon names and path are relative to the topmost zip directory. |
138 | | * If there are multiple XML files, a file with "preset" in the name is preferred (to allow packaging styles and presets in one archive). |
139 | | |
| 147 | default="default_value":: |
| 148 | An explicitly declared default value for the item. This value is ''only'' applied through a preset when the object the preset is applied to has ''zero keys''. |
| 149 | If no value for default is specified, no value is set to the key. Used in `<check />`, `<text />`, `<combo />` and `<multiselect />`. For `<check />` only the values `"on"` and `"off"` are valid. |
| 150 | values="entry1,entry2,entry3":: |
| 151 | A list of entries (for the `<combo />` box and `<multiselect />`). The list has to be separated by commas (for the combo box) or by the specified delimiter (for the multiselect). If a value contains the delimiter, the delimiter may be escaped with a backslash. If a value contains a backslash, it must also be escaped with a backslash. |
| 152 | values_from="JAVA code":: |
| 153 | To use instead of `values=""` if the list of values has to be obtained with a Java method of this form: `public static String[] getValues()`; The value must be: "full.package.name.ClassName#methodName". |
| 154 | values_no_i18n="true|false":: |
| 155 | Disables internationalisation for values to avoid mistakes, see #11696. Default is `"false"`. Used in `<combo />` and `<multiselect />`. (Useful e.g. for keys `opening hours` or `brand`.) Not needed with keys with only numbers as values like `layer` or `level` which are already excluded from translation. |
| 156 | values_sort="true|false":: |
| 157 | Values of `<combo />` and `<multiselect />` are sorted alphabetic in every language. With this attribute you can disable the alphabetic sorting if the values should keep the given order, see #5509 and #11926. (In the JOSM internal preset this is used e.g. for the keys `tracktype`, `direction`, `network`, `smoothness`, `visibility` or `trail_visibility`.) Default is `"true"`.\\ |
| 158 | Users can globally disable sorting with the preference key `taggingpreset.sortvalues`. |
| 159 | values_context="context":: |
| 160 | Translation context for values attribute to separate equals words with different meaning (not required for in-file translations). |
| 161 | display_values="Entry1,Entry2,Entry3":: |
| 162 | A list of entries that is displayed to the user. Must be the same number and order of entries as `values=""` and `editable=""` must be `"false"` or not specified. For the delimiter character and escaping, see the remarks at `values=""`. Used in `<combo />` and `<multiselect />`. |
| 163 | value="foobar":: |
| 164 | Specify a value to be entered in the `<key>` tag. |
| 165 | value_on="foobar":: |
| 166 | Specify the true value to be entered in the `<key>` tag of a checked `<check />` (default is `"yes"`). |
| 167 | value_off="foobar":: |
| 168 | Specify the false value to be entered in the `<key>` tag of a unchecked `<check />` (default is `"no"`). |
| 169 | disable_off="true":: |
| 170 | Whether the off value of a `<check />` is disabled in the dialog, i.e., only unset or `"yes"` are provided. |
| 171 | editable="false":: |
| 172 | The combo box is read only, which means that the user can only select an item in the list. Default is `"true"`, which means, the user can add other values as text. (Feature was not working properly for a long time but should work again since r18221, see #6157.) |
| 173 | use_last_as_default="true|false|force":: |
| 174 | For `<combo />`, `<multiselect />` or `<text />` fields the last used value is used as default. Using `"force"` enforces this behavior also for already tagged objects. Default is `"false"`. |
| 175 | rows="count":: |
| 176 | Specify the number of rows to display in `<multiselect />` entry (if not set, it is auto determined by java or the look and feel and results in e.g. 8). |
| 177 | name_template="template", name_template_filter="search expression":: |
| 178 | Custom name formatter for osm primitives matching this preset. See [#name_templatedetails name template details] below. |
| 179 | match="none|key|key!|keyvalue|keyvalue!":: |
| 180 | Allows to change the matching process, i.e., determining whether the tags of an OSM object fit into this preset. If a preset fits then it is linked in the [wikitr:/Help/Dialog/TagsMembership Tags/Membership dialog]. |
| 181 | * `none`: neutral, i.e., do not consider this item for matching |
| 182 | * `key`: positive if key matches, neutral otherwise |
| 183 | * `key!`: positive if key matches, negative otherwise |
| 184 | * `keyvalue`: positive if key and value matches, neutral otherwise |
| 185 | * `keyvalue!`: positive if key and value matches, negative otherwise \\ |
| 186 | **Note**: For a match, at least one positive and no negative is required. Default is `"keyvalue!"` for `<key>` and `"none"` for `<text />`, `<combo />`, `<multiselect />` and `<check />`. |
| 187 | match_expression="search expression":: |
| 188 | additional criteria for matching primitives, specified in [wikitr:/Help/Action/Search JOSM search] syntax. ''(since r17662)'' \\ |
| 189 | Quotes (`"`) need to be written as `"`. \\ |
| 190 | For instance, a preset with `match_expression="foo=bar"` requires OSM objects to have the tag `foo=bar`. You may want to use the `match_expression=""` to exclude certain OSM objects, e.g. when a more specific preset is present. |
| 191 | id="unique_identifier":: |
| 192 | the unique identifier for this `<chunk>` |
| 193 | ref="unique_identifier":: |
| 194 | the unique identifier of the (already defined) template to include |
| 195 | columns="a number":: |
| 196 | the number of columns of grouped `<check />` |
| 197 | requisite="optional|required":: |
| 198 | If a relation member is optional or required. Default is `"optional"`. |
| 199 | count="a number":: |
| 200 | How often can a role occur (if not given unlimited number is assumed) |
| 201 | member_expression="search expression":: |
| 202 | an expression, in [wikitr:/Help/Action/Search JOSM search] syntax, for objects of this role \\ |
| 203 | Quotes (`"`) need to be written as `"`. |
| 204 | regexp="true":: |
| 205 | set to `"true"` if the key of a role is a regular expression. \\ |
| 206 | This allows variable roles e.g. `<role key="level_-?\d+" text="Building level" regexp="true" requisite="optional" type="relation" />` allows the roles `level_0`, `level_1`,... |
| 207 | preset_name="exact_name":: |
| 208 | The exact name of the preset to link to. |
| 209 | preset_name_label="false|true":: |
| 210 | Whether to insert "[preset name]" label in dialog (defaults to `"false"` for backward-compatibility on external presets). |
| 211 | length="a number":: |
| 212 | The length of a `<text />` or `<combo />` box (number of characters allowed). |
| 213 | alternative_autocomplete_keys="some_key(s)":: |
| 214 | A comma separated list of alternative keys to use for auto completion of `<text>`. |
| 215 | auto_increment="-2,-1,+1,+2":: |
| 216 | May contain a comma separated list of integer increments or decrements, e.g. `"-2,-1,+1,+2"`. A button will be shown next to the `<text />` field for each value, allowing the user to select auto-increment with the given stepping. Auto-increment only happens if the user selects it. There is also a button to deselect auto-increment. Default is no auto-increment. Mutually exclusive with `use_last_as_default=""`. |
| 217 | delimiter="special character":: |
| 218 | The character that separates values. In case of `<combo />` the default is ''comma'' (`,`). In case of `<multiselect />` the default is ''semicolon'' (`;`) and this will also be used to separate selected values in the tag. More information see `<multiselect />`, [#multiselect above]. |
| 219 | [=#short_description] |
| 220 | short_descriptions="Entry1,Entry2,Entry3":: |
| 221 | A delimiter-separated list of texts to be displayed below each `display_value=""`. (Only if it is not possible to describe the entry in 2-3 words.) Instead of a comma separated list using `values=""`, `display_values=""` and `short_descriptions=""`, the following form is also supported: \\ |
| 222 | `<list_entry value="" display_value="" short_description="" icon="" icon_size="" />` |
| 223 | values_searchable="true|false":: |
| 224 | Whether to search in `values=""` and `display_values=""`, respectively, `value=""` and `display_value=""` of `<combo />` or `<multiselect />` searching for presets. |
| 225 | value_template="template":: |
| 226 | A template to generate the value automatically based on other tag values of the object. The same syntax as in `name_template=""` is used, [#NameTemplateSyntax see below]. ''(since r17639)'' \\ |
| 227 | For instance, `"Bus {ref}: {from} → {to}"` can be used to generate the name of a bus route relation. \\ |
| 228 | **Note**: There are some minor problems with this attribute, see #20851 and #20861. |
| 229 | \\ |
| 230 | |
| 231 | ===== name_template and value_template details ===== #name_templatedetails |
| 232 | Name templates can be used to define custom formatting for OSM primitives or GPX waypoints (for example in the Relations or Selection panels). |
| 233 | |
| 234 | {{{ |
| 235 | #!xml |
| 236 | <?xml version="1.0" encoding="UTF-8"?> |
| 237 | <presets> |
| 238 | <item name="Public transportation" type="relation" |
| 239 | name_template="Bus({operator} {ref} ?{'{from} - {via} - {to}' | '{from} - {to}' | '{from}' | '{to}'})" |
| 240 | name_template_filter="type=route route=bus"> |
| 241 | </item> |
| 242 | </presets> |
| 243 | }}} |
| 244 | |
| 245 | **Samples** |
| 246 | ||= Template =||= Tags =||= Result =|| |
| 247 | || `House number {addr:housenumber}` || `addr:housenumber=10` || House number 10 |
| 248 | || `?{ 'House number {addr:housenumber} at {addr:street}' | 'House number {addr:housenumber}' }` || `addr:housenumber=10` || House number 10 |
| 249 | || || `addr:housenumber=10 addr:street=Abbey road` || House number 10 at Abbey road |
| 250 | || `?{ admin_level = 2 'NUTS 1' | admin_level = 4 'NUTS 2' | admin_level = 6 'NUTS 3' | 'Admin level {admin_level}'}` || `admin_level=4` || NUTS 2 |
| 251 | || || `admin_level=5` || Admin level 5 |
| 252 | || `{admin_level} - {name} !{parent() type=boundary '?{'(part of {admin_level} - {name})' | ''}'}` || `admin_level=6 name=Vysocina`, member of relation `admin_level=4 name=Jihovychod` || 6 - Vysocina (part of 4 - Jihovychod) |
| 253 | || || `admin_level=2 name=Czech republic` (no parents) || 2 - Czech republic |
| 254 | \\ |
| 255 | |
| 256 | ====== Syntax ======#NameTemplateSyntax |
| 257 | * `{tag}` - insert the value of the tag. |
| 258 | * `?{condition1 'value1' | condition2 'value2' | 'value3'}` - use ''value1'' if ''condition1'' is satisfied, else use ''value2'' if ''condition2'' is satisfied, finally use ''value3'' if no condition is satisfied. Condition can be either explicit - in [wikitr:/Help/Action/Search JOSM search] syntax - or implicit: The value is used when all tags referenced inside exist. |
| 259 | * `!{search_expression 'template'}` - search_expression is evaluated and first matching primitive is used as context for template. Useful for example to get tags of parent relation. |
| 260 | * `\` - use a backslash to escape special characters '{', '}', '?', '!'. E.g. `What is this\? It is a {type}\!`. |
| 261 | \\ |
| 262 | |
| 263 | ====== Available values ====== |
| 264 | For formatting of OSM primitives, the value of any tag can be used. Use the tag `{special:everything}` to display all available tags, eg. on your gpx waypoints. |
| 265 | |
| 266 | You can also use these virtual tags: |
| 267 | - `{special:everything}` prints all available values, available for formatting of both primitives and waypoints. |
| 268 | - `{special:id}` prints the ID of the osm primitive. |
| 269 | - `{special:localName}` prints the localized name, that is the value of `name:lang` for your language if it is available, or the value of `name` if it is not. |
| 270 | \\ |
| 271 | |
| 272 | === Deprecated Attributes === |
| 273 | The following attributes are deprecated and no longer supported by JOSM: |
| 274 | |
| 275 | delete_if_empty="true":: |
| 276 | was removed in r5155. You can simply remove this attribute if still used in your preset. |
| 277 | required="true":: |
| 278 | replaced by `match=""` since r5155 |
| 279 | \\ |
| 280 | |
| 281 | == Translation == |
| 282 | To support translations, all textual elements (`name=""`, `text=""`, `display_values=""`) can be localized. E.g. `de.name=""` would represent the name when the German language support is loaded. In the preset XML code the English term must be the first, before possible translations can be added. |
| 283 | |
| 284 | === Internal Preset === |
| 285 | The translation for the internal preset is done at [https://translations.launchpad.net/josm/trunk Launchpad] (and will probably change to another service in the future, since the Launchpad web interface often produces timeout errors, see #8645). |
| 286 | |
| 287 | In the [source:josm/trunk/resources/data/defaultpresets.xml internal preset], all `name=""`, `text=""` and `display_values=""` are translated via the above service, as long as no specific translation has been given within XML file. When no `display_values=""` are supplied, then `values=""` will be treated as `display_values=""` and translated instead. |
| 288 | |
| 289 | When the same English word has different translations in different contexts, the specific translation context needs to be specified. Use `name_context=""`, `text_context=""` or `values_context=""` for this purpose. The context should be a meaningful short description to help translators. |
| 290 | |
| 291 | === External Presets === |
| 292 | |
| 293 | The translation of external presets on this website is, so far, only possible inline within the preset XML source code, see #11392. |
| 294 | |
| 295 | However, when words are used in the external preset that already exist in the internal preset, the translation from the internal preset applies to the external as well. This is useful as long as the context is the same. When the context in the external preset is different, it needs to be distinguished by adding `name_context=""`, `text_context=""` or `values_context=""`. |
| 296 | |
| 297 | == Icon handling == |
| 298 | See [wikitr:/Styles#Iconhandling Styles]. |
| 299 | |
| 300 | == See also == |
| 301 | * [wikitr:/Help/Menu/Presets Presets menu] |