Changeset 17637 in osm for applications


Ignore:
Timestamp:
2009-09-15T17:13:24+02:00 (15 years ago)
Author:
guggis
Message:

fixed #3511: tageditor plugin doesn't work on latest version

Location:
applications/editors/josm/plugins/tageditor
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/tageditor/build.xml

    r17386 r17637  
    8989                <attribute name="Plugin-Description" value="Provides a dialog for editing tags in a tabular grid."/>
    9090                <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/JOSM/Plugins/TagEditor"/>
    91                 <attribute name="Plugin-Mainversion" value="2012"/>
     91                <attribute name="Plugin-Mainversion" value="2141"/>
    9292                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    9393            </manifest>
  • applications/editors/josm/plugins/tageditor/src/org/openstreetmap/josm/plugins/tageditor/preset/Group.java

    r14326 r17637  
    1414import org.openstreetmap.josm.plugins.tageditor.util.IndentWriter;
    1515
    16 
    1716/**
    1817 * Group represents a named group of preset items. Groups can be nested.
    1918 *
    20  * @author Gubaer
    2119 *
    2220 */
     
    2422       
    2523        static private Logger logger = Logger.getLogger(Group.class.getName());
    26        
    2724       
    2825        private String name;
     
    10198                writer.writeLine("</group>");
    10299        }
    103        
    104100}
  • applications/editors/josm/plugins/tageditor/src/org/openstreetmap/josm/plugins/tageditor/preset/Presets.java

    r17386 r17637  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
    5 import java.io.BufferedInputStream;
    6 import java.io.BufferedReader;
    75import java.io.IOException;
    86import java.io.InputStreamReader;
     
    1210import java.net.URLConnection;
    1311import java.util.ArrayList;
     12import java.util.LinkedList;
    1413import java.util.List;
    1514import java.util.logging.Level;
     
    2423import org.openstreetmap.josm.plugins.tageditor.util.IndentWriter;
    2524
    26 
    2725public class Presets {
    2826        private static Logger logger = Logger.getLogger(Presets.class.getName());
    29        
     27
    3028        private static Presets presets = null;
    31        
    32        
    33         static public void initPresets()  {
    34                
     29
     30        static public void initPresets() {
     31
    3532                presets = new Presets();
    36                
     33                LinkedList<String> sources = new LinkedList<String>();
     34
    3735                // code copied from org.openstreetmap.josm.gui.tagging.TaggingPreset
    3836                // and slightly modified
    3937                //
    40                
    41                 String allTaggingPresets = Main.pref.get("taggingpreset.sources");
     38                if (Main.pref.getBoolean("taggingpreset.enable-defaults", true)) {
     39                        sources.add("resource://presets/presets.xml");
     40                }
     41                sources.addAll(Main.pref.getCollection("taggingpreset.sources",
     42                                new LinkedList<String>()));
    4243
    43         if (Main.pref.getBoolean("taggingpreset.enable-defaults", true))
    44         {
    45             allTaggingPresets = "resource://presets/presets.xml"
    46             + (allTaggingPresets != null ? ";"+allTaggingPresets : "");
    47         }
     44                for (String source : sources) {
     45                        logger.log(Level.INFO, String.format(
     46                                        "starting to read presets from source '%1$s'", source));
     47                        try {
     48                                MirroredInputStream s = new MirroredInputStream(source);
     49                                InputStreamReader r;
     50                                try {
     51                                        r = new InputStreamReader(s, "UTF-8");
     52                                } catch (UnsupportedEncodingException e) {
     53                                        r = new InputStreamReader(s);
     54                                }
     55                                presets = loadPresets(r, presets);
    4856
    49         for(String source : allTaggingPresets.split(";"))
    50         {
    51                 logger.log(Level.INFO, String.format("starting to read presets from source '%1$s'", source));
    52             try {
    53                 MirroredInputStream s = new MirroredInputStream(source);
    54                 InputStreamReader r;
    55                 try
    56                 {
    57                     r = new InputStreamReader(s, "UTF-8");
    58                 }
    59                 catch (UnsupportedEncodingException e)
    60                 {
    61                     r = new InputStreamReader(s);
    62                 }
    63                 presets = loadPresets(r,presets);
    64                
    65             } catch(PresetIOException e) {
    66                 logger.log(Level.SEVERE, tr("Could not read tagging preset source: {0}", source),e);
    67                 JOptionPane.showMessageDialog(
    68                                 Main.parent, tr("Could not read tagging preset source: {0}",source),
    69                                 tr("Error"),
    70                                 JOptionPane.ERROR_MESSAGE);     
    71             } catch (IOException e) {
    72                 e.printStackTrace();
    73                 JOptionPane.showMessageDialog(
    74                                 Main.parent,
    75                                 tr("Could not read tagging preset source: {0}",source),
    76                                 tr("Error"),
    77                                 JOptionPane.ERROR_MESSAGE
    78                                 );
    79             }
    80         }               
     57                        } catch (PresetIOException e) {
     58                                logger
     59                                                .log(Level.SEVERE, tr(
     60                                                                "Could not read tagging preset source: {0}",
     61                                                                source), e);
     62                                JOptionPane.showMessageDialog(Main.parent, tr(
     63                                                "Could not read tagging preset source: {0}", source),
     64                                                tr("Error"), JOptionPane.ERROR_MESSAGE);
     65                        } catch (IOException e) {
     66                                e.printStackTrace();
     67                                JOptionPane.showMessageDialog(Main.parent, tr(
     68                                                "Could not read tagging preset source: {0}", source),
     69                                                tr("Error"), JOptionPane.ERROR_MESSAGE);
     70                        }
     71                }
    8172        }
    82        
     73
    8374        static public Presets loadPresets(URL from) throws PresetIOException {
    8475                try {
    8576                        URLConnection con = from.openConnection();
    8677                        con.connect();
    87                         Reader reader = new InputStreamReader(
    88                                 con.getInputStream()
    89                         );
    90                         return loadPresets(reader,null);
    91                 } catch(Exception e) {
    92                         logger.log(Level.SEVERE, "exception caught while loading preset file",e);
     78                        Reader reader = new InputStreamReader(con.getInputStream());
     79                        return loadPresets(reader, null);
     80                } catch (Exception e) {
     81                        logger.log(Level.SEVERE,
     82                                        "exception caught while loading preset file", e);
    9383                        throw new PresetIOException(e);
    9484                }
    95                
     85
    9686        }
    97        
     87
    9888        static public Presets loadPresets(Reader reader, Presets p) throws PresetIOException {
    99                 try{
     89                try {
    10090                        Parser parser = new Parser();
    10191                        parser.setReader(reader);
     
    10393                        parser.parse();
    10494                        return parser.getPresets();
    105                 } catch(Exception e) {
     95                } catch (Exception e) {
    10696                        logger.log(Level.SEVERE, "exception caught while loading presets",e);
    10797                        throw new PresetIOException(e);
    10898                }
    10999        }
    110        
    111        
    112        
    113        
     100
    114101        static public Presets getPresets() {
    115102                if (presets == null) {
    116103                        initPresets();
    117104                }
    118                 return presets; 
     105                return presets;
    119106        }
    120        
    121        
     107
    122108        private List<Group> groups;
    123        
     109
    124110        public Presets() {
    125111                groups = new ArrayList<Group>();
    126112        }
    127        
     113
    128114        public void addGroup(Group group) {
    129115                groups.add(group);
    130116        }
    131        
     117
    132118        public void removeGroup(Group group) {
    133119                groups.remove(group);
    134120        }
    135        
     121
    136122        public void dump(IndentWriter writer) throws IOException {
    137123                writer.indent();
    138124                writer.write("<presets>\n");
    139125                writer.incLevel();
    140                 for(Group group: groups) {
     126                for (Group group : groups) {
    141127                        group.dump(writer);
    142128                }
     
    144130                writer.indent();
    145131                writer.write("</presets>");
    146         } 
    147        
     132        }
     133
    148134        public List<Group> getGroups() {
    149135                return groups;
  • applications/editors/josm/plugins/tageditor/src/org/openstreetmap/josm/plugins/tageditor/preset/io/Parser.java

    r14327 r17637  
    22
    33import java.io.Reader;
     4import java.util.Stack;
    45import java.util.logging.Level;
    56import java.util.logging.Logger;
     
    2223       
    2324        static private Logger logger = Logger.getLogger(Parser.class.getName());
    24        
    25        
    26         private Presets presets = null;
     25    private Presets presets = null;
    2726        private Reader reader;
    28         private Group currentGroup;
     27        private Stack<Group> currentGroup;
    2928        private Item currentItem;
    3029        private boolean inOptionalKeys = false;
    3130        private XMLReader parser;
    32          
    33        
     31
    3432        public Parser() {
    35                 currentGroup = null;
     33                currentGroup = new Stack<Group>();
    3634                currentItem = null;
    3735        }
     
    5250                return reader;
    5351        }
    54        
    5552       
    5653        public Presets getPresets() {
     
    135132       
    136133        protected void onStartGroup(String name, String iconName) {
    137                 currentGroup = new Group();
    138                 currentGroup.setName(translatedAttributeValue(name));
    139                 currentGroup.setIconName(iconName);
     134                Group g = new Group();
     135                g.setName(translatedAttributeValue(name));
     136                g.setIconName(iconName);
     137                currentGroup.push(g);
    140138        }
    141139       
    142140        protected void onEndGroup() {
    143                 presets.addGroup(currentGroup);
    144                 currentGroup = null;
     141                Group g = currentGroup.pop();
     142                presets.addGroup(g);
    145143        }
    146144       
     
    156154                        throw new IllegalStateException("illegal state. no current group defined");
    157155                }
    158                 currentGroup.addItem(currentItem);
     156                currentGroup.peek().addItem(currentItem);
    159157                currentItem = null;
    160158        }
     
    190188        }
    191189       
    192 
    193        
    194190        /**
    195191         * The SAX handler for reading XML files with tag specifications
     
    198194         */
    199195        class Handler extends DefaultHandler {
    200                                
    201196               
    202197                @Override
     
    205200                }
    206201
    207                
    208 
    209202                @Override
    210203                public void error(SAXParseException e) throws SAXException {
     
    222215                }
    223216
    224                
    225217                protected String getAttribute(Attributes attributes, String qName) {
    226218                        for (int i =0; i < attributes.getLength();i++) {
     
    231223                        return null;
    232224                }
    233 
    234225               
    235226                @Override
    236227                public void startElement(String namespaceURI, String localName, String qName,
    237228                                Attributes atts) throws SAXException {
    238                        
    239229                        if ("group".equals(qName)) {
    240230                                onStartGroup(getAttribute(atts, "name"), getAttribute(atts, "icon"));
     
    263253                        } else if ("optional".equals(qName)) {
    264254                                onEndOptionalKeys();
    265                         }
    266                        
     255                        }                       
    267256                }
    268257
     
    275264                        logger.log(Level.WARNING, "XML parsing warning", e);
    276265                }
    277                
    278                
    279                
    280         }
    281        
    282        
    283        
    284  
    285        
    286        
    287        
     266        }
    288267}
  • applications/editors/josm/plugins/tageditor/src/org/openstreetmap/josm/plugins/tageditor/preset/ui/PresetsTableModel.java

    r15319 r17637  
    2121        private Presets presets = null;
    2222
    23 
    2423        protected void initModelFromPresets(Presets presets) {
    2524                for(Group group: presets.getGroups()) {
     
    3029                }
    3130        }
    32 
    3331
    3432        public PresetsTableModel() {
     
    4442        }
    4543
    46 
    47 
    4844        public void setPresets(Presets presets) {
    4945                this.presets = presets;
     
    5147                fireTableDataChanged();
    5248        }
    53 
    54 
    5549
    5650        @Override
     
    133127                        fireTableStructureChanged();
    134128                }
    135 
    136129        }
    137130}
Note: See TracChangeset for help on using the changeset viewer.