Changeset 26949 in osm for applications/editors


Ignore:
Timestamp:
2011-10-23T14:06:19+02:00 (13 years ago)
Author:
malcolmh
Message:

save

Location:
applications/editors/josm/plugins/smed/plugs/oseam/src/oseam
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelChan.java

    r26925 r26949  
    88import oseam.Messages;
    99import oseam.dialogs.OSeaMAction;
     10import oseam.seamarks.SeaMark;
    1011import oseam.seamarks.SeaMark.*;
    1112
     
    108109        private ActionListener alTop = new ActionListener() {
    109110                public void actionPerformed(java.awt.event.ActionEvent e) {
    110                         if (topmarkButton.isSelected()) {
    111                                 topmarkButton.setBorderPainted(true);
    112                         } else {
    113 //                              dlg.panelMain.panelTop.clearSelections();
    114                                 topmarkButton.setBorderPainted(false);
     111                        if (dlg.mark != null) {
     112                                dlg.panelMain.panelTop.clearSelections();
     113                                if (topmarkButton.isSelected()) {
     114                                        if (SeaMark.GrpMAP.get(dlg.mark.getObject()) == Grp.SAW) {
     115                                                dlg.panelMain.panelTop.sphereTopButton.doClick();
     116                                                dlg.panelMain.panelTop.panelPat.noneButton.doClick();
     117                                                dlg.panelMain.panelTop.panelPat.panelCol.redButton.doClick();
     118                                        } else {
     119                                                switch (dlg.mark.getCategory()) {
     120                                                case LAM_PORT:
     121                                                case LAM_PPORT:
     122                                                        dlg.panelMain.panelTop.canTopButton.doClick();
     123                                                        switch (dlg.mark.getRegion()) {
     124                                                        case A:
     125                                                                dlg.panelMain.panelTop.panelPat.noneButton.doClick();
     126                                                                dlg.panelMain.panelTop.panelPat.panelCol.redButton.doClick();
     127                                                                break;
     128                                                        case B:
     129                                                                dlg.panelMain.panelTop.panelPat.noneButton.doClick();
     130                                                                dlg.panelMain.panelTop.panelPat.panelCol.greenButton.doClick();
     131                                                                break;
     132                                                        case C:
     133                                                                dlg.panelMain.panelTop.panelPat.horizButton.doClick();
     134                                                                dlg.panelMain.panelTop.panelPat.panelCol.redButton.doClick();
     135                                                                dlg.panelMain.panelTop.panelPat.panelCol.addButton.doClick();
     136                                                                dlg.panelMain.panelTop.panelPat.panelCol.whiteButton.doClick();
     137                                                                break;
     138                                                        }
     139                                                        break;
     140                                                case LAM_STBD:
     141                                                case LAM_PSTBD:
     142                                                        dlg.panelMain.panelTop.coneTopButton.doClick();
     143                                                        switch (dlg.mark.getRegion()) {
     144                                                        case A:
     145                                                                dlg.panelMain.panelTop.panelPat.noneButton.doClick();
     146                                                                dlg.panelMain.panelTop.panelPat.panelCol.greenButton.doClick();
     147                                                                break;
     148                                                        case B:
     149                                                                dlg.panelMain.panelTop.panelPat.noneButton.doClick();
     150                                                                dlg.panelMain.panelTop.panelPat.panelCol.redButton.doClick();
     151                                                                break;
     152                                                        case C:
     153                                                                dlg.panelMain.panelTop.panelPat.horizButton.doClick();
     154                                                                dlg.panelMain.panelTop.panelPat.panelCol.greenButton.doClick();
     155                                                                dlg.panelMain.panelTop.panelPat.panelCol.addButton.doClick();
     156                                                                dlg.panelMain.panelTop.panelPat.panelCol.whiteButton.doClick();
     157                                                                break;
     158                                                        }
     159                                                        break;
     160                                                }
     161                                        }
     162                                        topmarkButton.setBorderPainted(true);
     163                                } else {
     164                                        topmarkButton.setBorderPainted(false);
     165                                }
    115166                        }
    116167                }
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java

    r26927 r26949  
    1616
    1717        private OSeaMAction dlg;
    18         private ActionListener act;
    1918        private Ent ent;
    2019        private ButtonGroup colourButtons = new ButtonGroup();
     
    5554                                                                                stackIdx--;
    5655                                                                } else {
    57                                                                         dlg.mark.setColour(Ent.BODY, Col.UNKNOWN);
     56                                                                        dlg.mark.setColour(ent, Col.UNKNOWN);
    5857                                                                }
    5958                                                        } else if (button == addButton) {
     
    107106        };
    108107
    109         public PanelCol(OSeaMAction dia, ActionListener al, Ent entity) {
     108        public PanelCol(OSeaMAction dia, Ent entity) {
    110109                dlg = dia;
    111                 act = al;
    112110                ent = entity;
    113111                this.setLayout(null);
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java

    r26881 r26949  
    5151                panelChr = new PanelChr(dlg);
    5252                panelChr.setBounds(new Rectangle(0, 0, 88, 160));
    53                 panelCol = new PanelCol(dlg, alType, Ent.LIGHT);
     53                panelCol = new PanelCol(dlg, Ent.LIGHT);
    5454                panelCol.setBounds(new Rectangle(88, 0, 34, 160));
    5555                this.setLayout(null);
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMain.java

    r26925 r26949  
    99import oseam.Messages;
    1010import oseam.dialogs.OSeaMAction;
    11 import oseam.seamarks.SeaMark.*;
    1211
    1312public class PanelMain extends JPanel {
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelMore.java

    r26925 r26949  
    11package oseam.panels;
    2 
    3 import static org.openstreetmap.josm.tools.I18n.tr;
    42
    53import java.awt.*;
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPat.java

    r26925 r26949  
    1515
    1616        private OSeaMAction dlg;
     17        private Ent ent;
    1718        public PanelCol panelCol;
    18         private ActionListener alType;
    1919
    2020        private ButtonGroup patButtons = new ButtonGroup();
     
    3232                                        JRadioButton button = patterns.get(pat);
    3333                                        if (button.isSelected()) {
    34                                                 dlg.mark.setPattern(Ent.BODY, pat);
     34                                                dlg.mark.setPattern(ent, pat);
    3535                                                button.setBorderPainted(true);
    3636                                        } else
    3737                                                button.setBorderPainted(false);
    3838                                }
    39                                 switch (dlg.mark.getPattern(Ent.BODY)) {
     39                                switch (dlg.mark.getPattern(ent)) {
    4040                                case NONE:
    4141                                        panelCol.trimStack(1);
     
    5959        public PanelPat(OSeaMAction dia, Ent entity) {
    6060                dlg = dia;
     61                ent = entity;
    6162                this.setLayout(null);
    62                 panelCol = new PanelCol(dlg, alType, entity);
     63                panelCol = new PanelCol(dlg, ent);
    6364                panelCol.setBounds(new Rectangle(0, 0, 72, 160));
    6465                this.add(panelCol, null);
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelPort.java

    r26925 r26949  
    4040                                        dlg.panelMain.moreButton.setVisible(true);
    4141                                        dlg.panelMain.panelChan.topmarkButton.setVisible(true);
     42                                        dlg.panelMain.topButton.setEnabled(true);
     43                                        dlg.panelMain.fogButton.setEnabled(true);
     44                                        dlg.panelMain.radButton.setEnabled(true);
     45                                        dlg.panelMain.litButton.setEnabled(true);
    4246                                        dlg.panelMain.panelMore.panelPat.panelCol.clearSelections();
    4347                                        if (dlg.mark.getCategory() == Cat.LAM_PORT) {
     
    9599                                        dlg.panelMain.moreButton.setVisible(false);
    96100                                        dlg.panelMain.panelChan.topmarkButton.setVisible(false);
     101                                        dlg.panelMain.topButton.setEnabled(false);
     102                                        dlg.panelMain.fogButton.setEnabled(false);
     103                                        dlg.panelMain.radButton.setEnabled(false);
     104                                        dlg.panelMain.litButton.setEnabled(false);
    97105                                }
    98106                                dlg.mark.paintSign();
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSaw.java

    r26925 r26949  
    3636                                        dlg.panelMain.moreButton.setVisible(true);
    3737                                        dlg.panelMain.panelChan.topmarkButton.setVisible(true);
     38                                        dlg.panelMain.topButton.setEnabled(true);
     39                                        dlg.panelMain.fogButton.setEnabled(true);
     40                                        dlg.panelMain.radButton.setEnabled(true);
     41                                        dlg.panelMain.litButton.setEnabled(true);
    3842                                        dlg.panelMain.panelMore.panelPat.panelCol.clearSelections();
    3943                                        dlg.panelMain.panelMore.panelPat.vertButton.doClick();
     
    4347                                } else {
    4448                                        dlg.panelMain.moreButton.setVisible(false);
     49                                        dlg.panelMain.topButton.setEnabled(false);
     50                                        dlg.panelMain.fogButton.setEnabled(false);
     51                                        dlg.panelMain.radButton.setEnabled(false);
     52                                        dlg.panelMain.litButton.setEnabled(false);
    4553                                }
    4654                                dlg.mark.paintSign();
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java

    r26561 r26949  
    11package oseam.panels;
    22
    3 import java.awt.*;
    43import java.awt.event.*;
    54import javax.swing.*;
    6 import java.util.*;
    75
    86import oseam.seamarks.Light;
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelStbd.java

    r26925 r26949  
    4040                                        dlg.panelMain.moreButton.setVisible(true);
    4141                                        dlg.panelMain.panelChan.topmarkButton.setVisible(true);
     42                                        dlg.panelMain.topButton.setEnabled(true);
     43                                        dlg.panelMain.fogButton.setEnabled(true);
     44                                        dlg.panelMain.radButton.setEnabled(true);
     45                                        dlg.panelMain.litButton.setEnabled(true);
    4246                                        dlg.panelMain.panelMore.panelPat.panelCol.clearSelections();
    4347                                        if (dlg.mark.getCategory() == Cat.LAM_PORT) {
     
    9599                                        dlg.panelMain.moreButton.setVisible(false);
    96100                                        dlg.panelMain.panelChan.topmarkButton.setVisible(false);
     101                                        dlg.panelMain.topButton.setEnabled(false);
     102                                        dlg.panelMain.fogButton.setEnabled(false);
     103                                        dlg.panelMain.radButton.setEnabled(false);
     104                                        dlg.panelMain.litButton.setEnabled(false);
    97105                                }
    98106                                dlg.mark.paintSign();
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelTop.java

    r26927 r26949  
    3333        public JRadioButton mooringTopButton = new JRadioButton(new ImageIcon(getClass().getResource("/images/MooringTopButton.png")));
    3434        private EnumMap<Top, JRadioButton> tops = new EnumMap<Top, JRadioButton>(Top.class);
    35         private EnumMap<Day, JRadioButton> days = new EnumMap<Day, JRadioButton>(Day.class);
    3635        private ActionListener alTop = new ActionListener() {
    3736                public void actionPerformed(java.awt.event.ActionEvent e) {
    38                         for (Top top : tops.keySet()) {
    39                                 JRadioButton button = tops.get(top);
    40                                 if (button.isSelected()) {
    41                                         dlg.mark.setTopmark(top);
    42                                         dlg.mark.setDaymark(Day.NONE);
    43                                         button.setBorderPainted(true);
    44                                 } else
    45                                         button.setBorderPainted(false);
     37                        if (dlg.mark != null) {
     38                                for (Top top : tops.keySet()) {
     39                                        JRadioButton button = tops.get(top);
     40                                        if (button.isSelected()) {
     41                                                dlg.mark.setTopmark(top);
     42                                                button.setBorderPainted(true);
     43                                        } else
     44                                                button.setBorderPainted(false);
     45                                }
     46                                mooringTopButton.setBorderPainted(mooringTopButton.isSelected());
    4647                        }
    47                         for (Day day : days.keySet()) {
    48                                 JRadioButton button = days.get(day);
    49                                 if (button.isSelected()) {
    50                                         dlg.mark.setDaymark(day);
    51                                         dlg.mark.setTopmark(Top.NONE);
    52                                         button.setBorderPainted(true);
    53                                 } else
    54                                         button.setBorderPainted(false);
    55                         }
    56                         mooringTopButton.setBorderPainted(mooringTopButton.isSelected());
    5748                }
    5849        };
     
    7465                this.add(getTopButton(westTopButton, 200, 35, 27, 27, "WestTop", Top.WEST), null);
    7566                this.add(getTopButton(spheres2TopButton, 230, 35, 27, 27, "Spheres2Top", Top.SPHERES2), null);
    76                 this.add(getDayButton(boardDayButton, 110, 65, 27, 27, "BoardDay", Day.BOARD), null);
    77                 this.add(getDayButton(diamondDayButton, 140, 65, 27, 27, "DiamondDay", Day.DIAMOND), null);
    78                 this.add(getDayButton(triangleDayButton, 170, 65, 27, 27, "TriangleDay", Day.TRIANGLE), null);
    79                 this.add(getDayButton(triangleInvDayButton, 200, 65, 27, 27, "TriangleInvDay", Day.TRIANGLE_INV), null);
    80                 this.add(getDayButton(squareDayButton, 230, 65, 27, 27, "SquareDay", Day.SQUARE), null);
    81                 this.add(getDayButton(circleDayButton, 230, 95, 27, 27, "CircleDay", Day.CIRCLE), null);
     67                this.add(getTopButton(boardDayButton, 110, 65, 27, 27, "BoardDay", Top.BOARD), null);
     68                this.add(getTopButton(diamondDayButton, 140, 65, 27, 27, "DiamondDay", Top.DIAMOND), null);
     69                this.add(getTopButton(triangleDayButton, 170, 65, 27, 27, "TriangleDay", Top.TRIANGLE), null);
     70                this.add(getTopButton(triangleInvDayButton, 200, 65, 27, 27, "TriangleInvDay", Top.TRIANGLE_INV), null);
     71                this.add(getTopButton(squareDayButton, 230, 65, 27, 27, "SquareDay", Top.SQUARE), null);
     72                this.add(getTopButton(circleDayButton, 230, 95, 27, 27, "CircleDay", Top.CIRCLE), null);
    8273                this.add(getMoorButton(mooringTopButton, 110, 95, 27, 27, "MooringTop"), null);
    8374        }
    8475
    8576        public void clearSelections() {
    86                 topButtons.clearSelection();
    87                 alTop.actionPerformed(null);
     77                noTopButton.doClick();
    8878                panelPat.clearSelections();
    8979        }
     
    9181        public void enableAll(boolean state) {
    9282                for (JRadioButton button : tops.values()) {
    93                         button.setEnabled(state);
    94                 }
    95                 for (JRadioButton button : days.values()) {
    9683                        button.setEnabled(state);
    9784                }
     
    10996        }
    11097
    111         private JRadioButton getDayButton(JRadioButton button, int x, int y, int w, int h, String tip, Day day) {
    112                 button.setBounds(new Rectangle(x, y, w, h));
    113                 button.setBorder(BorderFactory.createLoweredBevelBorder());
    114                 button.setToolTipText(Messages.getString(tip));
    115                 button.addActionListener(alTop);
    116                 topButtons.add(button);
    117                 days.put(day, button);
    118                 return button;
    119         }
    120 
    12198        private JRadioButton getMoorButton(JRadioButton button, int x, int y, int w, int h, String tip) {
    12299                button.setBounds(new Rectangle(x, y, w, h));
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java

    r26925 r26949  
    22
    33import java.awt.*;
    4 import java.awt.event.*;
    5 import java.awt.Color.*;
    64import javax.swing.*;
    75import java.util.*;
     
    443441        }
    444442
    445         public static final EnumMap<Pat, String> PatMAP = new EnumMap<Pat, String>(Pat.class);
     443        public static final EnumMap<Pat, String> PatSTR = new EnumMap<Pat, String>(Pat.class);
    446444        static {
    447                 PatMAP.put(Pat.HORIZ, "horizontal");
    448                 PatMAP.put(Pat.VERT, "vertical");
    449                 PatMAP.put(Pat.DIAG, "diagonal");
    450                 PatMAP.put(Pat.SQUARE, "squared");
    451                 PatMAP.put(Pat.BORDER, "border");
     445                PatSTR.put(Pat.HORIZ, "horizontal");
     446                PatSTR.put(Pat.VERT, "vertical");
     447                PatSTR.put(Pat.DIAG, "diagonal");
     448                PatSTR.put(Pat.SQUARE, "squared");
     449                PatSTR.put(Pat.BORDER, "border");
    452450        }
    453451
     
    489487
    490488        public enum Top {
    491                 NONE, CAN, CONE, SPHERE, X_SHAPE, NORTH, SOUTH, EAST, WEST, SPHERES2
     489                NONE, CAN, CONE, SPHERE, X_SHAPE, NORTH, SOUTH, EAST, WEST, SPHERES2,
     490                BOARD, DIAMOND, CIRCLE, TRIANGLE, TRIANGLE_INV, SQUARE
    492491        }
    493492
     
    496495                TopSTR.put(Top.CAN, "cylinder");
    497496                TopSTR.put(Top.CONE, "cylinder");
    498                 TopSTR.put(Top.SPHERE, "SPHERE");
    499                 TopSTR.put(Top.X_SHAPE, "X-SHAPE");
     497                TopSTR.put(Top.SPHERE, "sphere");
     498                TopSTR.put(Top.X_SHAPE, "x-shape");
    500499                TopSTR.put(Top.NORTH, "2 cones up");
    501500                TopSTR.put(Top.SOUTH, "2 cones down");
     
    503502                TopSTR.put(Top.WEST, "2 cones points together");
    504503                TopSTR.put(Top.SPHERES2, "2 spheres");
     504                TopSTR.put(Top.BOARD, "board");
     505                TopSTR.put(Top.DIAMOND, "diamond");
     506                TopSTR.put(Top.CIRCLE, "circle");
     507                TopSTR.put(Top.TRIANGLE, "triangle, point up");
     508                TopSTR.put(Top.TRIANGLE_INV, "triangle, point down");
     509                TopSTR.put(Top.SQUARE, "square");
    505510        }
    506511
     
    517522        public void setTopmark(Top top) {
    518523                topShape = top;
    519         }
    520 
    521         public enum Day {
    522                 NONE, BOARD, DIAMOND, CIRCLE, TRIANGLE, TRIANGLE_INV, SQUARE
    523         }
    524 
    525         public static final EnumMap<Day, String> DaySTR = new EnumMap<Day, String>(Day.class);
    526         static {
    527                 DaySTR.put(Day.BOARD, "board");
    528                 DaySTR.put(Day.DIAMOND, "diamond");
    529                 DaySTR.put(Day.CIRCLE, "circle");
    530                 DaySTR.put(Day.TRIANGLE, "triangle, point up");
    531                 DaySTR.put(Day.TRIANGLE_INV, "triangle, point down");
    532                 DaySTR.put(Day.SQUARE, "square");
    533         }
    534 
    535         private Day dayShape = Day.NONE;
    536 
    537         public boolean hasDaymark() {
    538                 return (dayShape != Day.NONE);
    539         }
    540 
    541         public Day getDaymark() {
    542                 return dayShape;
    543         }
    544 
    545         public void setDaymark(Day day) {
    546                 dayShape = day;
    547524        }
    548525
     
    873850                                str = keys.get("seamark:" + ObjSTR.get(obj) + ":colour_pattern");
    874851                                setPattern(Ent.BODY, Pat.NONE);
    875                                 for (Pat pat : PatMAP.keySet()) {
    876                                         if (PatMAP.get(pat).equals(str)) {
     852                                for (Pat pat : PatSTR.keySet()) {
     853                                        if (PatSTR.get(pat).equals(str)) {
    877854                                                setPattern(Ent.BODY, pat);
    878855                                        }
     
    12541231
    12551232                                if (getPattern(Ent.BODY) != Pat.NONE) {
    1256                                         Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:" + objStr + ":colour_pattern", PatMAP
    1257                                                         .get(getPattern(Ent.BODY))));
     1233                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:" + objStr + ":colour_pattern", PatSTR.get(getPattern(Ent.BODY))));
    12581234                                }
    12591235
     
    12721248                                }
    12731249                        }
     1250                        if (hasTopmark()) {
     1251                                Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:topmark:shape", TopSTR.get(getTopmark())));
     1252                                if (getPattern(Ent.TOPMARK) != Pat.NONE)
     1253                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:topmark:colour_pattern", PatSTR.get(getPattern(Ent.TOPMARK))));
     1254                                if (getColour(Ent.TOPMARK, 0) != Col.UNKNOWN) {
     1255                                        String str = ColSTR.get(getColour(Ent.TOPMARK, 0));
     1256                                        for (int i = 1; topColour.size() > i; i++) {
     1257                                                str += (";" + ColSTR.get(getColour(Ent.TOPMARK, i)));
     1258                                        }
     1259                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:topmark:colour", str));
     1260                                }
     1261                        }
    12741262                }
    12751263        }
Note: See TracChangeset for help on using the changeset viewer.