Changeset 30022 in osm for applications/editors


Ignore:
Timestamp:
2013-10-13T19:17:33+02:00 (11 years ago)
Author:
malcolmh
Message:

save

Location:
applications/editors/josm/plugins/smed2/src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed2/src/panels/PanelMain.java

    r30006 r30022  
    55import java.awt.Color;
    66import java.awt.Dimension;
     7import java.awt.Graphics;
     8import java.awt.Graphics2D;
    79import java.awt.event.ActionListener;
     10import java.awt.image.BufferedImage;
     11import java.io.File;
    812import java.util.ArrayList;
    913import java.util.Iterator;
    1014
     15import javax.imageio.ImageIO;
    1116import javax.swing.*;
    1217
     
    1419
    1520import org.openstreetmap.josm.Main;
     21import org.openstreetmap.josm.actions.search.SearchCompiler.Parent;
    1622
    1723import s57.S57att.Att;
    1824import s57.S57obj.Obj;
     25import seamap.Renderer;
    1926import seamap.SeaMap.*;
    2027import smed2.Smed2Action;
    2128
    2229public class PanelMain extends JPanel {
    23 
    24         /**
    25          *
    26          */
    2730        private static final long serialVersionUID = 1L;
     31       
     32        Smed2Action dlg;
     33        BufferedImage img;
     34        int w, h, z, f;
     35        JTextField wt, ht, zt, ft;
    2836        public static JTextArea decode = null;
    2937        public static JTextField messageBar = null;
     
    3139        private ActionListener alSave = new ActionListener() {
    3240                public void actionPerformed(java.awt.event.ActionEvent e) {
     41                        dumpMap();
    3342                }
    3443        };
     
    6574        };
    6675
    67         public PanelMain() {
    68 
     76        public PanelMain(Smed2Action dia) {
     77                dlg = dia;
    6978                setLayout(null);
    7079                setSize(new Dimension(480, 480));
    7180               
     81                w = h = z = f = 0;
     82                wt = new JTextField("0");
     83                wt.setBounds(10, 400, 40, 20);
     84    add(wt);
     85                ht = new JTextField("0");
     86                ht.setBounds(60, 400, 40, 20);
     87    add(ht);
     88                zt = new JTextField("0");
     89                zt.setBounds(110, 400, 40, 20);
     90    add(zt);
     91                ft = new JTextField("0");
     92                ft.setBounds(160, 400, 40, 20);
     93    add(ft);
     94
    7295    messageBar = new JTextField();
    7396    messageBar.setBounds(70, 430, 290, 20);
     
    92115                decode.setBounds(0, 0, 480, 420);
    93116                decode.setTabSize(1);
    94                 add(decode);
     117//              add(decode);
     118        }
     119       
     120        public void dumpMap() {
     121                img = new BufferedImage(Integer.parseInt(wt.getText()), Integer.parseInt(ht.getText()), BufferedImage.TYPE_INT_ARGB);
     122                Graphics2D g2 = img.createGraphics();
     123                Renderer.reRender(g2, Integer.parseInt(zt.getText()), Integer.parseInt(ft.getText()), dlg.map, dlg.rendering);
     124                try {
     125                        ImageIO.write(img, "png", new File("/Users/mherring/Desktop/export.png"));
     126                } catch (Exception x) {
     127                        System.out.println("Exception");
     128                }
     129                repaint();
     130        }
     131       
     132        public void paintComponent(Graphics g){
     133                super.paintComponent(g);
     134                Graphics2D g2 = (Graphics2D) g;
     135                g2.setBackground(new Color(0xb5d0d0));
     136                if (img != null) g2.clearRect(0, 0, img.getWidth(), img.getHeight());
     137                g2.drawImage(img, 0, 0, null);;
    95138        }
    96139       
  • applications/editors/josm/plugins/smed2/src/seamap/Renderer.java

    r30020 r30022  
    143143        }
    144144       
    145         public static void lineSymbols(Feature feature, Symbol prisymb, double space, Symbol secsymb, int ratio) {
     145        public static void lineSymbols(Feature feature, Symbol prisymb, double space, Symbol secsymb, int ratio, Color col) {
    146146                Area area;
    147147                switch (feature.flag) {
     
    207207                                                        }
    208208                                                        if (!gap) {
    209                                                                 Symbols.drawSymbol(g2, symbol, sScale, curr.getX(), curr.getY(), new Delta(Handle.BC, AffineTransform.getRotateInstance(Math.atan2((succ.getY() - curr.getY()), (succ.getX() - curr.getX())) + Math.toRadians(90))), null);
     209                                                                Symbols.drawSymbol(g2, symbol, sScale, curr.getX(), curr.getY(),
     210                                                                                new Delta(Handle.BC, AffineTransform.getRotateInstance(Math.atan2((succ.getY() - curr.getY()), (succ.getX() - curr.getX())) + Math.toRadians(90))),
     211                                                                                new Scheme(col));
    210212                                                        }
    211213                                                        if (space > 0)
  • applications/editors/josm/plugins/smed2/src/seamap/Rules.java

    r30020 r30022  
    140140                case RESARE:
    141141                        if (zoom >= 12) {
    142                                 Renderer.lineSymbols(feature, Areas.Restricted, 1.0, null, 0);
     142                                Renderer.lineSymbols(feature, Areas.Restricted, 1.0, null, 0, new Color(0x80c480));
    143143//                              if ((CatREA)Renderer.getAttVal(feature, feature.type, 0, Att.CATREA) == CatREA.REA_NWAK)
    144144//                                      Renderer.symbol(feature, Areas.NoWake, Obj.RESARE, null);
     
    199199                        if (zoom >= 12) {
    200200                                Renderer.symbol(feature, Areas.Plane, Obj.SPLARE, null, null);
    201                                 Renderer.lineSymbols(feature, Areas.Restricted, 0.5, Areas.LinePlane, 10);
     201                                Renderer.lineSymbols(feature, Areas.Restricted, 0.5, Areas.LinePlane, 10, new Color(0x80c480));
    202202                        }
    203203                        if ((zoom >= 15) && (name != null))
     
    268268                if (zoom >= 14) {
    269269                        if (feature.type == Obj.CBLSUB) {
    270                                 Renderer.lineSymbols(feature, Areas.Cable, 0.0, null, 0);
     270                                Renderer.lineSymbols(feature, Areas.Cable, 0.0, null, 0, new Color(0x80c480));
    271271                        } else if (feature.type == Obj.CBLOHD) {
    272272
     
    311311                case ACHARE:
    312312                        if (zoom >= 12) {
    313                                 if (feature.flag != Fflag.LINE)
    314                                         Renderer.symbol(feature, Harbours.Anchorage, null, null, null);
    315                                 Renderer.lineSymbols(feature, Areas.Restricted, 1.0, Areas.LineAnchor, 10);
     313                                if (feature.flag != Fflag.AREA) {
     314                                        Renderer.symbol(feature, Harbours.Anchorage, null, null, new Scheme(Color.black));
     315                                } else {
     316                                        Renderer.symbol(feature, Harbours.Anchorage, null, null, new Scheme(new Color(0xc480ff)));
     317                                        Renderer.lineSymbols(feature, Areas.Restricted, 1.0, Areas.LineAnchor, 10, new Color(0xc480ff));
     318                                }
    316319                                if ((zoom >= 15) && ((name) != null)) {
    317                                         Renderer.labelText(feature, (String) name.val, new Font("Arial", Font.BOLD, 80), new Color(0x80c480ff), null);
     320                                        Renderer.labelText(feature, (String) name.val, new Font("Arial", Font.BOLD, 80), new Color(0xc480ff), new Delta(Handle.BC, AffineTransform.getTranslateInstance(160, 0)));
    318321                                }
    319322                        }
     
    705708                if (zoom >= 14) {
    706709                        if (feature.type == Obj.PIPSOL) {
    707                                 Renderer.lineSymbols(feature, Areas.Pipeline, 1.0, null, 0);
     710                                Renderer.lineSymbols(feature, Areas.Pipeline, 1.0, null, 0, new Color(0x80c480));
    708711                        } else if (feature.type == Obj.PIPOHD) {
    709712
     
    748751                case TSSRON:
    749752                        if (zoom <= 15)
    750                                 Renderer.lineVector(feature, new LineStyle(null, 0, null, new Color(0x80c480ff, true)));
     753                                Renderer.lineVector(feature, new LineStyle(null, 0, null, new Color(0x80c48080, true)));
    751754                        else
    752                                 Renderer.lineVector(feature, new LineStyle(new Color(0x80c480ff, true), 20, null, null));
     755                                Renderer.lineVector(feature, new LineStyle(new Color(0x80c48080, true), 20, null, null));
    753756                        AttItem name = feature.atts.get(Att.OBJNAM);
    754757                        if ((zoom >= 10) && (name != null))
    755                                 Renderer.labelText(feature, (String) name.val, new Font("Arial", Font.BOLD, 150), new Color(0x80c480ff), null);
     758                                Renderer.labelText(feature, (String) name.val, new Font("Arial", Font.BOLD, 150), new Color(0x80c48080), null);
    756759                        break;
    757760                case TSELNE:
    758                         Renderer.lineVector(feature, new LineStyle(new Color(0x80c480ff, true), 20, null, null));
     761                        Renderer.lineVector(feature, new LineStyle(new Color(0x80c48080, true), 20, null, null));
    759762                        break;
    760763                case TSSLPT:
    761                         Renderer.lineSymbols(feature, Areas.LaneArrow, 0.5, null, 0);
     764                        Renderer.lineSymbols(feature, Areas.LaneArrow, 0.5, null, 0, new Color(0x80c48080, true));
    762765                        break;
    763766                case TSSBND:
    764                         Renderer.lineVector(feature, new LineStyle(new Color(0x80c480ff, true), 20, new float[] { 40, 40 }, null));
     767                        Renderer.lineVector(feature, new LineStyle(new Color(0x80c48080, true), 20, new float[] { 40, 40 }, null));
    765768                        break;
    766769                case ISTZNE:
    767                         Renderer.lineSymbols(feature, Areas.Restricted, 1.0, null, 0);
     770                        Renderer.lineSymbols(feature, Areas.Restricted, 1.0, null, 0, new Color(0x80c48080, true));
    768771                        break;
    769772                }
  • applications/editors/josm/plugins/smed2/src/smed2/Smed2Action.java

    r30021 r30022  
    1212import java.awt.*;
    1313import java.awt.event.*;
     14import java.awt.image.BufferedImage;
     15import java.io.File;
    1416import java.util.*;
    1517import java.util.Map.Entry;
    1618
     19import javax.imageio.ImageIO;
    1720import javax.swing.*;
    1821
     
    3033
    3134import s57.S57dat;
     35import seamap.Renderer;
    3236import seamap.SeaMap;
    3337import seamap.SeaMap.*;
     
    3741
    3842public class Smed2Action extends JosmAction implements EditLayerChangeListener, SelectionChangedListener {
    39 
    4043        private static final long serialVersionUID = 1L;
     44       
    4145        private static String editor = tr("SeaMap Editor");
    4246        public static JFrame editFrame = null;
     
    122126                editFrame.setAlwaysOnTop(true);
    123127                editFrame.setVisible(true);
    124                 panelMain = new PanelMain();
     128                panelMain = new PanelMain(this);
    125129                editFrame.add(panelMain);
    126130                panelS57 = new S57dat();
  • applications/editors/josm/plugins/smed2/src/symbols/Areas.java

    r30020 r30022  
    2020        static {
    2121                Plane.add(new Instr(Prim.BBOX, new Rectangle(-60,-60,120,120)));
     22                Plane.add(new Instr(Prim.FILL, new Color(0xa30075)));
    2223                Path2D.Double p = new Path2D.Double(); p.moveTo(40,20); p.lineTo(50,10); p.lineTo(27.0,13.3); p.lineTo(23.7,6.8); p.lineTo(40.0,5.0); p.curveTo(55,4,55,-9,40,-10);
    2324                p.quadTo(31,-11,30,-15); p.lineTo(-30,2); p.quadTo(-35,-12,-45,-15); p.quadTo(-56,-3,-50,15); p.lineTo(18.4,7.3); p.lineTo(21.7,14); p.lineTo(-20,20); p.closePath();
     
    4445        static {
    4546                LineAnchor.add(new Instr(Prim.BBOX, new Rectangle(-30,-60,60,90)));
    46                 LineAnchor.add(new Instr(Prim.FILL, new Color(0xc480ff)));
    4747                LineAnchor.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.5, 0, 0, new Delta(Handle.CC, AffineTransform.getRotateInstance(Math.toRadians(-90.0))), null)));
    4848        }
     
    5555        static {
    5656                MarineFarm.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    57                 MarineFarm.add(new Instr(Prim.FILL, Color.black));
    5857                Path2D.Double p = new Path2D.Double(); p.moveTo(-23,12); p.lineTo(-23,23); p.lineTo(23,23); p.lineTo(23,12); p.moveTo(-8,15); p.lineTo(-8,23); p.moveTo(8,15); p.lineTo(8,23);
    5958                p.moveTo(-23,-12); p.lineTo(-23,-23); p.lineTo(23,-23); p.lineTo(23,-12); p.moveTo(-8,-15); p.lineTo(-8,-23); p.moveTo(8,-15); p.lineTo(8,-23);
     
    8483                Restricted.add(new Instr(Prim.BBOX, new Rectangle(-15,-30,30,30)));
    8584                Restricted.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)));
    86                 Restricted.add(new Instr(Prim.FILL, new Color(0xc480ff)));
    8785                Restricted.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-30)));
    8886                Restricted.add(new Instr(Prim.LINE, new Line2D.Double(0,-15,17,-15)));
     
    136134        static {
    137135                WindFarm.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    138                 WindFarm.add(new Instr(Prim.FILL, Color.black));
    139136                WindFarm.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-100,-100,200,200)));
    140137                WindFarm.add(new Instr(Prim.LINE, new Line2D.Double(-35,50,35,50)));
     
    160157        static {
    161158                WreckND.add(new Instr(Prim.STRK, new BasicStroke(5, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    162                 WreckND.add(new Instr(Prim.FILL, Color.black));
    163159                WreckND.add(new Instr(Prim.LINE, new Line2D.Double(-40,0,40,0)));
    164160                WreckND.add(new Instr(Prim.LINE, new Line2D.Double(0,-30,0,30)));
     
    169165        static {
    170166                WreckS.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    171                 WreckS.add(new Instr(Prim.FILL, Color.black));
    172167                WreckS.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-6,-6,12,12)));
    173168                WreckS.add(new Instr(Prim.LINE, new Line2D.Double(-40,0,-6,0)));
  • applications/editors/josm/plugins/smed2/src/symbols/Harbours.java

    r29789 r30022  
    3131        public static final Symbol Anchorage = new Symbol();
    3232        static {
    33                 Anchorage.add(new Instr(Prim.FILL, new Color(0xa30075)));
    3433                Anchorage.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 1.0, 0, 0, null, null)));
    3534        }
     
    6766        static {
    6867                ContainerCrane.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    69                 ContainerCrane.add(new Instr(Prim.FILL, Color.black));
    7068                ContainerCrane.add(new Instr(Prim.RSHP, new Rectangle2D.Double(-15,-65,30,100)));
    7169                ContainerCrane.add(new Instr(Prim.RECT, new Rectangle2D.Double(-40,-12.5,80,25)));
    7270        }
     71        public static final Symbol Customs = new Symbol();
     72        static {
     73                Customs.add(new Instr(Prim.BBOX, new Rectangle(-30,-30,60,60)));
     74                Customs.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     75                Customs.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-28,-28,56,56)));
     76                Customs.add(new Instr(Prim.LINE, new Line2D.Double(-25,5,25,5)));
     77                Customs.add(new Instr(Prim.LINE, new Line2D.Double(-25,-5,25,-5)));
     78        }
    7379        public static final Symbol DeviationDolphin = new Symbol();
    7480        static {
    7581                DeviationDolphin.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    76                 DeviationDolphin.add(new Instr(Prim.FILL, Color.black));
    7782                Path2D.Double p = new Path2D.Double(); p.moveTo(-30.0,0.0); p.lineTo(30.0,0.0); p.moveTo(0.0,0.0); p.lineTo(0.0,-40.0);
    7883                p.moveTo(-20.0,0.0); p.lineTo(-15.0,-32.0); p.lineTo(15.0,-32.0); p.lineTo(20.0,0.0);
     
    8287        static {
    8388                DistanceI.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    84                 DistanceI.add(new Instr(Prim.FILL, Color.black));
    8589                DistanceI.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-11,-11,22,22)));
    8690        }
     
    101105                Dolphin.add(new Instr(Prim.PLIN, p));
    102106        }
     107        public static final Symbol Explosives = new Symbol();
     108        static {
     109                Explosives.add(new Instr(Prim.BBOX, new Rectangle(-30,-30,60,60)));
     110                Explosives.add(new Instr(Prim.FILL, new Color(0xa30075)));
     111                Explosives.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-5,25,10,10)));
     112                Explosives.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)));
     113                Path2D.Double p = new Path2D.Double(); p.moveTo(-10,20); p.lineTo(-13,17); p.lineTo(-13,8);
     114                p.moveTo(0,10); p.lineTo(0,0); p.lineTo(-8,-10);
     115                p.moveTo(10,17); p.lineTo(18,-10); p.lineTo(10,-20);
     116                Explosives.add(new Instr(Prim.PLIN, p));
     117        }
    103118        public static final Symbol Harbour = new Symbol();
    104119        static {
     
    111126        static {
    112127                HarbourMaster.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    113                 HarbourMaster.add(new Instr(Prim.FILL, Color.black));
    114128                HarbourMaster.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-35,-50,70,100)));
    115129                HarbourMaster.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Harbours.Anchor, 0.6, 0, 0, null, null)));
     130        }
     131        public static final Symbol Hospital = new Symbol();
     132        static {
     133                Hospital.add(new Instr(Prim.BBOX, new Rectangle(-30,-30,60,60)));
     134                Hospital.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
     135                Hospital.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-28,-28,56,56)));
     136                Path2D.Double p = new Path2D.Double(); p.moveTo(-26,-5); p.lineTo(-5,-5); p.lineTo(-5,-25); p.moveTo(5,-25); p.lineTo(5,-5); p.lineTo(25,-5);
     137                p.moveTo(-25,5); p.lineTo(-5,5); p.lineTo(-5,25); p.moveTo(5,25); p.lineTo(5,5); p.lineTo(25,5);
     138                Hospital.add(new Instr(Prim.PLIN, p));
    116139        }
    117140        public static final Symbol LandingSteps = new Symbol();
     
    148171        static {
    149172                PortCrane.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    150                 PortCrane.add(new Instr(Prim.FILL, Color.black));
    151173                PortCrane.add(new Instr(Prim.EARC, new Arc2D.Double(-36.0,-36.0,72.0,72.0,70.0,-320.0,Arc2D.OPEN)));
    152174                PortCrane.add(new Instr(Prim.LINE, new Line2D.Double(0,0,0,-60)));
     
    154176        public static final Symbol Post = new Symbol();
    155177        static {
    156                 Post.add(new Instr(Prim.FILL, Color.black));
    157178                Post.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-10,-10,20,20)));
    158179        }
     
    160181        static{
    161182                Rescue.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    162                 Rescue.add(new Instr(Prim.FILL, Color.black));
    163183                Path2D.Double p = new Path2D.Double(); p.moveTo(-11,0); p.lineTo(0,-43); p.lineTo(11,0); p.lineTo(0,43); p.closePath();
    164184                Rescue.add(new Instr(Prim.PGON, p));
     
    168188        static {
    169189                SignalStation.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    170                 SignalStation.add(new Instr(Prim.FILL, Color.black));
    171190                SignalStation.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-25,-25,50,50)));
    172191                SignalStation.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
     
    175194        static {
    176195                TideGauge.add(new Instr(Prim.STRK, new BasicStroke(3, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    177                 TideGauge.add(new Instr(Prim.FILL, Color.black));
    178196                TideGauge.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    179197                TideGauge.add(new Instr(Prim.LINE, new Line2D.Double(-10,0,-30,0)));
  • applications/editors/josm/plugins/smed2/src/symbols/Landmarks.java

    r29198 r30022  
    2727        static {
    2828                Base.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    29                 Base.add(new Instr(Prim.FILL, Color.black));
    3029                Base.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-10,-10,20,20)));
    3130                Base.add(new Instr(Prim.LINE, new Line2D.Double(-35,0,-10,0)));
     
    3736                Chimney.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    3837                Chimney.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    39                 Chimney.add(new Instr(Prim.FILL, Color.black));
    4038                Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(-10.0,-120.0); p.lineTo(10.0,-120.0); p.lineTo(25.0,0.0);
    4139                p.moveTo(-10.0,-128.0); p.curveTo(-13.0,-147.0,15.0,-159.0,20.0,-148.0);
     
    4644        public static final Symbol Church = new Symbol();
    4745        static {
    48                 Church.add(new Instr(Prim.FILL, Color.black));
    4946                Path2D.Double p = new Path2D.Double(); p.moveTo(10.0,-10.0); p.lineTo(37.0,-10.0); p.quadTo(48.0,-10.0,48.0,-21.0); p.lineTo(50.0,-21.0); p.lineTo(50.0,21.0);
    5047                p.lineTo(48.0,21.0); p.quadTo(48.0,10.0,37.0,10.0); p.lineTo(10.0,10.0); p.lineTo(10.0,37.0); p.quadTo(10.0,48.0,21.0,48.0); p.lineTo(21.0,50.0);
     
    5754        static {
    5855                ChurchTower.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    59                 ChurchTower.add(new Instr(Prim.FILL, Color.black));
    6056                ChurchTower.add(new Instr(Prim.RECT, new Rectangle2D.Double(-36,-36,72,72)));
    6157                ChurchTower.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-2,-2,4,4)));
     
    6561                Cross.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    6662                Cross.add(new Instr(Prim.STRK, new BasicStroke(6, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    67                 Cross.add(new Instr(Prim.FILL, Color.black));
    6863                Cross.add(new Instr(Prim.LINE, new Line2D.Double(0,-10,0,-150)));
    6964                Cross.add(new Instr(Prim.LINE, new Line2D.Double(-30,-115,30,-115)));
     
    7368                DishAerial.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    7469                DishAerial.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)));
    75                 DishAerial.add(new Instr(Prim.FILL, Color.black));
    7670                Path2D.Double p = new Path2D.Double(); p.moveTo(-7.8,-6.0); p.lineTo(0.0,-62.0); p.lineTo(7.8,-6.0); p.moveTo(18.0,-109.0); p.lineTo(25.0,-113.0);
    7771                p.moveTo(-9.5,-157.0); p.curveTo(-60.7,-125.5,-16.5,-33.9,44.9,-61.7); p.closePath();
     
    8175        static {
    8276                Dome.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    83                 Dome.add(new Instr(Prim.FILL, Color.black));
    8477                Dome.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-36,-36,72,72)));
    8578                Dome.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
     
    8982                Flagstaff.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    9083                Flagstaff.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    91                 Flagstaff.add(new Instr(Prim.FILL, Color.black));
    9284                Path2D.Double p = new Path2D.Double(); p.moveTo(0.0,-10.0); p.lineTo(0.0,-150.0); p.moveTo(0.0,-140.0); p.lineTo(40.0,-140.0); p.lineTo(40.0,-100.0); p.lineTo(0.0,-100.0);
    9385                Flagstaff.add(new Instr(Prim.PLIN, p));
     
    9789                FlareStack.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    9890                FlareStack.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    99                 FlareStack.add(new Instr(Prim.FILL, Color.black));
    10091                Path2D.Double p = new Path2D.Double(); p.moveTo(-7.8,-6.0); p.lineTo(-7.8,-100.0); p.lineTo(7.8,-100.0); p.lineTo(7.8,-6.0);
    10192                FlareStack.add(new Instr(Prim.PLIN, p));
     
    10899                LandTower.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    109100                LandTower.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    110                 LandTower.add(new Instr(Prim.FILL, Color.black));
    111101                LandTower.add(new Instr(Prim.LINE, new Line2D.Double(-25,0,-15,-120)));
    112102                LandTower.add(new Instr(Prim.LINE, new Line2D.Double(25,0,15,-120)));
     
    117107                Mast.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    118108                Mast.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)));
    119                 Mast.add(new Instr(Prim.FILL, Color.black));
    120109                Path2D.Double p = new Path2D.Double(); p.moveTo(-25.0,0.0); p.lineTo(0.0,-150.0); p.lineTo(25.0,0.0);
    121110                Mast.add(new Instr(Prim.PLIN, p));
     
    125114                Monument.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    126115                Monument.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    127                 Monument.add(new Instr(Prim.FILL, Color.black));
    128116                Monument.add(new Instr(Prim.LINE, new Line2D.Double(-25,0,-15,-105)));
    129117                Monument.add(new Instr(Prim.LINE, new Line2D.Double(25,0,15,-105)));
     
    133121        static {
    134122                Platform.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    135                 Platform.add(new Instr(Prim.FILL, Color.black));
    136123                Platform.add(new Instr(Prim.RECT, new Rectangle2D.Double(-48,-48,96,96)));
    137124                Platform.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
     
    140127        static {
    141128                RadioTV.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)));
    142                 RadioTV.add(new Instr(Prim.FILL, Color.black));
    143129                RadioTV.add(new Instr(Prim.EARC, new Arc2D.Double(-30.0,-180.0,60.0,60.0,45.0,-90.0,Arc2D.OPEN)));
    144130                RadioTV.add(new Instr(Prim.EARC, new Arc2D.Double(-45.0,-195.0,90.0,90.0,45.0,-90.0,Arc2D.OPEN)));
     
    149135        static {
    150136                Spire.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    151                 Spire.add(new Instr(Prim.FILL, Color.black));
    152137                Spire.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-25,-25,50,50)));
    153138                Spire.add(new Instr(Prim.RSHP, new Ellipse2D.Double(-4,-4,8,8)));
     
    173158                WaterTower.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    174159                WaterTower.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    175                 WaterTower.add(new Instr(Prim.FILL, Color.black));
    176160                WaterTower.add(new Instr(Prim.LINE, new Line2D.Double(-25,0,-15,-120)));
    177161                WaterTower.add(new Instr(Prim.LINE, new Line2D.Double(25,0,15,-120)));
     
    182166                WindMotor.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    183167                WindMotor.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    184                 WindMotor.add(new Instr(Prim.FILL, Color.black));
    185168                WindMotor.add(new Instr(Prim.LINE, new Line2D.Double(0,-10,0,-90)));
    186169                WindMotor.add(new Instr(Prim.LINE, new Line2D.Double(0,-90,30,-90)));
     
    191174        static {
    192175                Windmill.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER)));
    193                 Windmill.add(new Instr(Prim.FILL, Color.black));
    194176                Windmill.add(new Instr(Prim.ELPS, new Ellipse2D.Double(-12,-12,24,24)));
    195177                Windmill.add(new Instr(Prim.LINE, new Line2D.Double(-30,-42,30,10)));
     
    200182                Windsock.add(new Instr(Prim.SYMB, new Symbols.SubSymbol(Landmarks.Base, 1.0, 0, 0, null, null)));
    201183                Windsock.add(new Instr(Prim.STRK, new BasicStroke(4, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
    202                 Windsock.add(new Instr(Prim.FILL, Color.black));
    203184                Windsock.add(new Instr(Prim.LINE, new Line2D.Double(0,-10,0,-100)));
    204185                Windsock.add(new Instr(Prim.STRK, new BasicStroke(8, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER)));
  • applications/editors/josm/plugins/smed2/src/symbols/Symbols.java

    r29929 r30022  
    6161                        col = icol;
    6262                }
     63                public Scheme(Color icol) {
     64                        pat = new ArrayList<Patt>();
     65                        col = new ArrayList<Color>();
     66                        col.add(icol);
     67                }
    6368        }
    6469
     
    119124                int pn = 0;
    120125                int cn = 0;
     126                g2.setPaint(Color.black);
    121127                if (cs != null) {
    122128                        pn = cs.pat.size();
    123129                        cn = cs.col.size() - ((pn != 0) ? pn - 1 : 0);
     130                        if ((pn == 0) && (cs.col.size() == 1)) {
     131                                g2.setPaint(cs.col.get(0));
     132                        }
    124133                }
    125134                AffineTransform savetr = g2.getTransform();
     
    262271                                case SYMB:
    263272                                        SubSymbol s = (SubSymbol) item.params;
    264                                         drawSymbol(g2, s.instr, s.scale, s.x, s.y, s.delta, s.scheme);
     273                                        drawSymbol(g2, s.instr, s.scale, s.x, s.y, s.delta, (s.scheme != null ? s.scheme : cs));
    265274                                        break;
    266275                                case TEXT:
Note: See TracChangeset for help on using the changeset viewer.