wiki:Ru:Help/Preferences/ImportExport

Другие языки:

Пользовательские конфигурационные XML-файлы для JOSM

Примеры (см. комментарии в XML)

Команды добавления или замены настроек

Следующий код добавляет ещё одну подложку в список:

<config>
<preferences operation="append">
    <!-- Любой фрагмент preferences.xml может быть использован здесь -->
    <tag key="download.autorun" value="true"/> <!-- пример простого изменения настройки - download.autorun := true -->
    <maps key="imagery.entries"> 
      <map>
        <tag key="name" value="ScanEx IRS"/>
        <tag key="type" value="scanex"/>
        <tag key="url" value="IRS"/>
        <tag key="attribution-text" value="IRS"/>
        <tag key="attribution-url" value="http://irs.gis-lab.info/"/>
      </map>
    </maps>
</preferences>
</config>

Если взамен исплользуется <preferences operation="replace">, то все другие элементы <map> будут удалены из imagery.entries !

Ещё один пример:

<config>
  <preferences operation="replace"> <!-- старое содержимое draw.anglesnap.angles будет удалено -->
     <list key="draw.anglesnap.angles">
       <entry value="30"/>
       <entry value="45"/>
       <entry value="60"/>
     </list>
   </preferences>
</config>

Операции с файлами - скачивание удаление, распаковка из zip-архива

<config>
  <delete path="plugins/tmp"/>
  <!-- рекурсивное удаление plugins/tmp из каталога настроек -->
  <!-- base="prefs" - удалить из папки настроек; base="plugins" - удалить из папки plugins; base ="cache" - удалить из папке кэша -->
  
  <delete path="splug" base="plugins"/>
  <!-- рекурсивное удаление папки splug из каталога настроек -->
  
  <!--<delete path="." base="cache"/> удалить папку кэша -->

  <download url="http://svn.openstreetmap.org/applications/editors/josm/dist/buildings_tools.jar" path="plugins/tmp/bt.jar" mkdir="true" unzip="true"/>
  <!-- скачать файл из url и поместить как "path"; если mkdir="true", то все необходимые каталоги будут созданы; если unzip="true", то файл zip/jar будет распакован и затем удалён -->

  <download url="https://wiki.openstreetmap.org/w/images/7/79/Public-images-osm_logo.svg" path="1/logo.svg" mkdir="true" base="cache"/>

  <download url="file://localhost/e:/a.zip" path="qqq/a.zip" unzip="true" mkdir="true"/>
  <!-- копировать из локальной папки и распаковать архив -->
</config>

Операции с модулями: установка, отключение, удаление

<config>
<!-- установить модули и убрать их без удаления  plastic_laf.jar -->
   <plugin install="buildings_tools;wayselector" remove="plastic_laf"/>
   <plugin delete="proj4j"/> <!-- отключить модуль и удалить jar -->
</config>

Переменные, окна сообщений и запрос пользователя

<config>
  <ask var="r" text="Choose something, please!" options="0;1;2"/>
  <messagebox text="You choose ${r}" type="i"/>
  <if test="${r==0}">
     <messagebox text="r=0!"/>
  </if>
  <else>
     <messagebox text="no, r!=0 - r=${r} actually!"/>
  </else>
  <if test="${r==1 || r==2}">
     <messagebox text="r=1 or 2!"/>
  </if>
  <if test="${r!=2 && r!=0}">
    <messagebox text="It is not 0, it is not 2 , so it is = 1!"/>
  </if>
  <if test="${r!=2}">
    <break/>
  </if>
  <ask var="r" text="Choose something, please!" options="A;B"/>
  <messagebox text="You choose button number ${r}" type="i"/>
</config>

JavaScript API

<config>
<script><![CDATA[ 
  API.messageBox('i','Hello!');
  txt = API.askText("Enter something...");
  i = API.askOption("Select background color","red;green;black");
  if (i==0) API.pref['color.background']="#770000";
  if (i==1) API.pref['color.background']="#007700";
  if (i==2) API.pref['color.background']="#000000";
  color = API.pref['color.background'];
  API.messageBox('i',"<html><span color='"+color+"'> You entered "+txt+"</span></html>");
  if ( API.askOption("Do you want to test downloading and plugins?","") == 0 ) { 
     // "" in askOption means Yes/No dialog 
     API.downloadFile("http://svn.openstreetmap.org/applications/editors/josm/dist/buildings_tools.jar",
          "1/2/a.jar","cache");
     API.downloadAndUnpackFile("http://svn.openstreetmap.org/applications/editors/josm/dist/buildings_tools.jar",
          "1/2a/a.jar","cache"); 
     if( API.askOption("Do you want to delete downloaded files?","") == 0) { 
        API.deleteFile("1","cache"); 
     } 
     API.pluginInstall("AlignWays"); 
     if( API.askOption("Do you want to uninstall utilsplugin2","") == 0) { 
        API.pluginUninstall("utilsplugin2"); 
        } 
   }
   importPackage(org.openstreetmap.josm.data); 
   CustomConfigurator.exportPreferencesKeysByPatternToFile ("e:/config.xml", true, ".*"); 
   //println(JSON.stringify(API.prefs)); // JSON works only on JDK1.7 //println(JSON.stringify(API.fragments)); // JSON works only on JDK1.7 ]]>
</script>
</config>

Смотрите также

  • Обсуждение разработки: #4421

Назад к Основной странице справки

Last modified 3 years ago Last modified on 2018-03-26T08:46:42+02:00