Ignore:
Timestamp:
2009-10-25T12:55:53+01:00 (15 years ago)
Author:
stoecker
Message:

applied #3771 - patch by bastiK - improve link display in relation handling

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableLinkedCellRenderer.java

    r2298 r2311  
    22package org.openstreetmap.josm.gui.dialogs.relation;
    33
     4import static org.openstreetmap.josm.tools.I18n.tr;
     5
     6import java.awt.Color;
    47import java.awt.Component;
     8import java.awt.Graphics;
     9import java.awt.Image;
    510
    611import javax.swing.JTable;
    712
     13import org.openstreetmap.josm.tools.ImageProvider;
     14
    815public class MemberTableLinkedCellRenderer extends MemberTableCellRenderer {
     16
     17    final static Image arrowUp = ImageProvider.get("dialogs", "arrowup").getImage();
     18    final static Image arrowDown = ImageProvider.get("dialogs", "arrowdown").getImage();
     19    private WayConnectionType value = new WayConnectionType();
    920
    1021    @Override
     
    1223            int row, int column) {
    1324        reset();
    14 
     25        this.value = (WayConnectionType) value;
    1526        renderForeground(isSelected);
    16         setText(value.toString());
     27        //setText(value.toString());
    1728        setToolTipText(((WayConnectionType)value).getToolTip());
    1829        renderBackground(getModel(table), null, isSelected);
    1930        return this;
    2031    }
     32
     33    @Override
     34    public void paintComponent(Graphics g) {
     35        super.paintComponent(g);
     36        if (value == null || value.invalid) {
     37            return;
     38        }
     39
     40        Image image = null;
     41        switch (value.direction) {
     42            case 1:
     43                image = arrowDown;
     44                break;
     45            case -1:
     46                image = arrowUp;
     47                break;
     48        }
     49
     50        int ymax=this.getSize().height - 1;
     51        int xoff = this.getSize().width / 2;
     52        int w = 2;
     53        int p = 2 + w + 1;
     54        int y1 = 0;
     55        int y2 = 0;
     56
     57        if (image != null && (value.connectedToPrevious || value.connectedToNext)) {
     58            g.drawImage(image, xoff-3, ymax / 2 - 2, null);
     59        }
     60
     61        if (value.connectedToPrevious) {
     62            g.setColor(Color.black);
     63            g.fillRect(xoff - 2, 0, 5, 2);
     64            y1 = 0;
     65        } else {
     66            g.setColor(Color.red);
     67            g.drawRect(xoff-1, p - 1 - w, w, w);
     68            y1 = p;
     69        }
     70
     71        if (value.connectedToNext) {
     72            g.setColor(Color.black);
     73            g.fillRect(xoff - 2, ymax - 1, 5, 2);
     74            y2 = ymax;
     75        } else {
     76            g.setColor(Color.red);
     77            g.drawRect(xoff-1, ymax - p + 1, w, w);
     78            y2 = ymax - p;
     79        }
     80        g.setColor(Color.black);
     81        g.drawLine(xoff, y1, xoff, y2);
     82    }
    2183}
Note: See TracChangeset for help on using the changeset viewer.