Changeset 2500 in josm


Ignore:
Timestamp:
2009-11-22T16:25:26+01:00 (15 years ago)
Author:
jttt
Message:

Added Dataset consistency test that can be invoked on osm layer or in bug report handler

Location:
trunk/src/org/openstreetmap/josm
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java

    r2369 r2500  
    22package org.openstreetmap.josm.actions;
    33
     4import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    5 import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
    66
    77import java.awt.Dimension;
     
    2222import org.openstreetmap.josm.Main;
    2323import org.openstreetmap.josm.data.Version;
     24import org.openstreetmap.josm.data.osm.DataSet;
     25import org.openstreetmap.josm.data.osm.DatasetConsistencyTest;
    2426import org.openstreetmap.josm.gui.ExtendedDialog;
    2527import org.openstreetmap.josm.plugins.PluginHandler;
     
    5961        text.append("Java version: " + System.getProperty("java.version"));
    6062        text.append("\n\n");
     63        DataSet dataset = Main.main.getCurrentDataSet();
     64        if (dataset != null) {
     65            text.append("Dataset consistency test:\n");
     66            String result = DatasetConsistencyTest.runTests(dataset);
     67            if (result.length() == 0) {
     68                text.append("No problems found\n");
     69            } else {
     70                text.append(result);
     71            }
     72            text.append("\n");
     73        }
     74        text.append("\n");
    6175        text.append(PluginHandler.getBugReportText());
    62         text.append("\n\n");
     76        text.append("\n");
     77
    6378        return text.toString();
    6479    }
  • trunk/src/org/openstreetmap/josm/data/osm/BBox.java

    r2450 r2500  
    102102
    103103    public boolean inside(BBox b) {
    104         if (xmin >= b.xmax)
     104        if (xmin > b.xmax)
    105105            return false;
    106         if (xmax <= b.xmin)
     106        if (xmax < b.xmin)
    107107            return false;
    108         if (ymin >= b.ymax)
     108        if (ymin > b.ymax)
    109109            return false;
    110         if (ymax <= b.ymin)
     110        if (ymax < b.ymin)
    111111            return false;
    112112        return true;
  • trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r2450 r2500  
    3434import javax.swing.JOptionPane;
    3535import javax.swing.JPanel;
     36import javax.swing.JScrollPane;
    3637import javax.swing.JSeparator;
     38import javax.swing.JTextArea;
    3739
    3840import org.openstreetmap.josm.Main;
     
    5153import org.openstreetmap.josm.data.osm.DataSetMerger;
    5254import org.openstreetmap.josm.data.osm.DataSource;
     55import org.openstreetmap.josm.data.osm.DatasetConsistencyTest;
    5356import org.openstreetmap.josm.data.osm.Node;
    5457import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    232235
    233236            // paint remainder
    234             ((Graphics2D)g).setPaint(hatched);
    235             ((Graphics2D)g).fill(a);
     237            g.setPaint(hatched);
     238            g.fill(a);
    236239        }
    237240
     
    536539                new JSeparator(),
    537540                new JMenuItem(new RenameLayerAction(getAssociatedFile(), this)),
     541                new JMenuItem(new ConsistencyTestAction()),
    538542                new JSeparator(),
    539543                new JMenuItem(new LayerListPopup.InfoAction(this))};
     
    550554                new JSeparator(),
    551555                new JMenuItem(new RenameLayerAction(getAssociatedFile(), this)),
     556                new JMenuItem(new ConsistencyTestAction()),
    552557                new JSeparator(),
    553558                new JMenuItem(new LayerListPopup.InfoAction(this))};
     
    614619                wpt.attr.put("name", name);
    615620            }
    616             ;
    617621        }
    618622        return gpxData;
     
    714718        // keep requiresSaveToDisk unchanged
    715719    }
     720
     721    private class ConsistencyTestAction extends AbstractAction {
     722
     723        public ConsistencyTestAction() {
     724            super(tr("Dataset consistency test"));
     725        }
     726
     727        public void actionPerformed(ActionEvent e) {
     728            String result = DatasetConsistencyTest.runTests(data);
     729            if (result.length() == 0) {
     730                JOptionPane.showMessageDialog(Main.parent, tr("No problems found"));
     731            } else {
     732                JPanel p = new JPanel(new GridBagLayout());
     733                p.add(new JLabel(tr("Following problems found:")), GBC.eol());
     734                JTextArea info = new JTextArea(result, 20, 60);
     735                info.setCaretPosition(0);
     736                info.setEditable(false);
     737                p.add(new JScrollPane(info), GBC.eop());
     738
     739                JOptionPane.showMessageDialog(Main.parent, p, tr("Warning"), JOptionPane.WARNING_MESSAGE);
     740            }
     741        }
     742
     743    }
    716744}
Note: See TracChangeset for help on using the changeset viewer.