Changeset 17520 in osm


Ignore:
Timestamp:
2009-09-08T17:08:26+02:00 (15 years ago)
Author:
stoecker
Message:

close josm 3407 - patch by xeen

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

Legend:

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

    r17354 r17520  
    2626                <attribute name="Plugin-Description" value="Imports issues from OpenStreetBugs"/>
    2727                <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/JOSM/Plugins/OpenStreetBugs"/>
    28                 <attribute name="Plugin-Mainversion" value="2010"/>
     28                <attribute name="Plugin-Mainversion" value="2067"/>
    2929                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    3030            </manifest>
  • applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/OsbLayer.java

    r17410 r17520  
    6868
    6969    private JToolTip tooltip = new JToolTip();
    70    
     70
    7171    private static ImageIcon iconError = OsbPlugin.loadIcon("icon_error16.png");
    7272    private static ImageIcon iconValid = OsbPlugin.loadIcon("icon_valid16.png");
     
    8383        // if the map layer has been closed, while we are requesting the osb db,
    8484        // the mapframe is null, so we check that, before installing the mouse listener
    85         if(Main.map != null && Main.map.mapView != null) { 
     85        if(Main.map != null && Main.map.mapView != null) {
    8686            Main.map.mapView.addMouseListener(this);
    8787        }
     
    125125
    126126            // don't paint deleted nodes
    127             if(node.deleted)
     127            if(!node.isUsable())
    128128                continue;
    129129
     
    140140            });
    141141        }
    142        
     142
    143143        if(selection == null)
    144144            return;
    145        
     145
    146146        // This loop renders the selection border and tooltips so they get drawn
    147147        // on top of the bug icons
    148148        for (int i = 0; i < nodes.length; i++) {
    149149            Node node = (Node) nodes[i];
    150            
    151             if(node.deleted || !selection.contains(node))
    152                 continue;
    153            
     150
     151            if(!node.isUsable() || !selection.contains(node))
     152                continue;
     153
    154154            // draw selection border
    155155            Point p = mv.getPoint(node);
    156            
     156
    157157            ImageIcon icon = ("1".equals(node.get("state"))) ? iconValid : iconError;
    158158            int width = icon.getIconWidth();
    159159            int height = icon.getIconHeight();
    160            
     160
    161161            g.setColor(ColorHelper.html2color(Main.pref.get("color.selected")));
    162             g.drawRect(p.x - (width / 2), p.y - (height / 2), 16, 16);
    163            
     162            g.drawRect(p.x-(width/2), p.y-(height/2), width-1, height-1);
     163
    164164            // draw description
    165165            String desc = node.get("note");
     
    175175            // draw description as a tooltip
    176176            tooltip.setTipText(desc);
    177            
     177
    178178            int tx = p.x + (width / 2) + 5;
    179179            int ty = (int)(p.y - height / 2) -1;
    180180            g.translate(tx, ty);
    181            
     181
    182182            // This limits the width of the tooltip to 2/3 of the drawing
    183183            // area, which makes longer tooltips actually readable (they
    184184            // would disappear if scrolled too much to the right)
    185            
     185
    186186            // Need to do this twice as otherwise getPreferredSize doesn't take
    187187            // the reduced width into account
    188188            for(int x = 0; x < 2; x++) {
    189                 Dimension d = tooltip.getUI().getPreferredSize(tooltip);               
     189                Dimension d = tooltip.getUI().getPreferredSize(tooltip);
    190190                d.width = Math.min(d.width, (int)(mv.getWidth()*2/3));
    191191                tooltip.setSize(d);
    192192                tooltip.paint(g);
    193193            }
    194            
     194
    195195            g.translate(-tx, -ty);
    196196        }
     
    210210        Node minPrimitive = null;
    211211        for (Node n : data.nodes) {
    212             if (n.deleted || n.incomplete)
     212            if (!n.isUsable())
    213213                continue;
    214214            Point sp = Main.map.mapView.getPoint(n);
  • applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/api/DownloadAction.java

    r16290 r17520  
    8585            double lon = Double.parseDouble(m.group(2));
    8686            LatLon latlon = new LatLon(lat, lon);
    87             Node osmNode = new Node(latlon);
    88             osmNode.id = Long.parseLong(m.group(1));
     87            Node osmNode = new Node(Long.parseLong(m.group(1)));
     88            osmNode.setCoor(latlon);
     89            osmNode.incomplete = false;
    8990            osmNode.put("id", m.group(1));
    9091            osmNode.put("note", m.group(4));
  • applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbDialog.java

    r17354 r17520  
    7979
    8080public class OsbDialog extends ToggleDialog implements OsbObserver, ListSelectionListener, LayerChangeListener,
    81         DataChangeListener, MouseListener, OsbActionObserver {
     81DataChangeListener, MouseListener, OsbActionObserver {
    8282
    8383    private static final long serialVersionUID = 1L;
     
    188188
    189189        for (Node node : sortedList) {
    190             if (!node.deleted) {
     190            if (node.isUsable()) {
    191191                model.addElement(new OsbListItem(node));
    192192            }
     
    218218
    219219            OsbAction.setSelectedNode(node);
    220 
    221220            scrollToSelected(node);
    222 
    223             if (fireSelectionChanged) {
    224                 Main.main.getCurrentDataSet().setSelected(selected);
    225             }
     221        }
     222
     223        // CurrentDataSet may be null if there is no normal, edible map
     224        // If so, a temporary DataSet is created because it's the simplest way
     225        // to fire all necessary events so OSB updates its popups.
     226        DataSet ds = Main.main.getCurrentDataSet();
     227        if (fireSelectionChanged) {
     228            if(ds == null)
     229                ds = new DataSet();
     230            ds.setSelected(selected);
    226231        }
    227232    }
     
    230235        for (int i = 0; i < model.getSize(); i++) {
    231236            Node current = ((OsbListItem) model.get(i)).getNode();
    232             if (current.id == node.id) {
     237            if (current.getId()== node.getId()) {
    233238                list.scrollRectToVisible(list.getCellBounds(i, i));
    234239                list.setSelectedIndex(i);
     
    320325        });
    321326    }
    322    
    323         @Override
    324         public void showDialog() {
    325                 if (!downloaded) {
    326                         initialDownload();
    327                         downloaded = true;
    328                 }
    329                 super.showDialog();
    330         }
     327
     328    @Override
     329    public void showDialog() {
     330        if (!downloaded) {
     331            initialDownload();
     332            downloaded = true;
     333        }
     334        super.showDialog();
     335    }
    331336}
  • applications/editors/josm/plugins/openstreetbugs/src/org/openstreetmap/josm/plugins/osb/gui/OsbListItem.java

    r13497 r17520  
    6363            OsbListItem other = (OsbListItem)obj;
    6464            if(getNode() != null && other.getNode() != null) {
    65                 return getNode().id == other.getNode().id;
     65                return getNode().getId() == other.getNode().getId();
    6666            }
    6767        }
Note: See TracChangeset for help on using the changeset viewer.