Ignore:
Timestamp:
2011-11-07T19:47:26+01:00 (13 years ago)
Author:
malcolmh
Message:

save

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

Legend:

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

    r27005 r27027  
    3737        private ActionListener alCharButton = new ActionListener() {
    3838                public void actionPerformed(java.awt.event.ActionEvent e) {
    39                         if (noneButton.isSelected()) {
    40                                 if (dlg.panelMain.panelLit.panelCol.delButton.isSelected()) {
    41                                         dlg.panelMain.lightIcon.setIcon(null);
    42                                 }
    43                         } else {
    44                                 dlg.panelMain.lightIcon.setIcon(new ImageIcon(getClass().getResource("/images/Light_Green_120.png")));
    45                         }
    4639                        JToggleButton source = (JToggleButton) e.getSource();
    4740                        EnumSet<Chr> combo = EnumSet.noneOf(Chr.class);
     
    7164                                }
    7265                        }
     66                        dlg.mark.setLightAtt(Att.CHR, 0, charBox.getText());
    7367                }
    7468        };
     
    7670                public void actionPerformed(java.awt.event.ActionEvent e) {
    7771                        String str = charBox.getText();
     72                        dlg.mark.setLightAtt(Att.CHR, 0, str);
    7873                        EnumSet<Chr> set = EnumSet.noneOf(Chr.class);
    7974                        for (EnumSet<Chr> map : SeaMark.ChrMAP.keySet()) {
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelCol.java

    r27023 r27027  
    4242                                        if (dlg.mark != null) {
    4343                                                if (ent == Ent.LIGHT) {
    44                                                         dlg.mark.setLightAtt(Att.COL, col);
     44                                                        dlg.mark.setLightAtt(Att.COL, 0, col);
    4545                                                        button.setBorderPainted(true);
    4646                                                } else {
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelLit.java

    r27023 r27027  
    2121        private ActionListener alGroup = new ActionListener() {
    2222                public void actionPerformed(java.awt.event.ActionEvent e) {
    23                         dlg.mark.setLightAtt(Att.GRP, groupBox.getText());
     23                        dlg.mark.setLightAtt(Att.GRP, 0, groupBox.getText());
    2424                }
    2525        };
     
    2828        private ActionListener alPeriod = new ActionListener() {
    2929                public void actionPerformed(java.awt.event.ActionEvent e) {
    30                         dlg.mark.setLightAtt(Att.PER, periodBox.getText());
     30                        dlg.mark.setLightAtt(Att.PER, 0, periodBox.getText());
    3131                }
    3232        };
     
    3535        private ActionListener alSequence = new ActionListener() {
    3636                public void actionPerformed(java.awt.event.ActionEvent e) {
    37                         dlg.mark.setLightAtt(Att.SEQ, sequenceBox.getText());
     37                        dlg.mark.setLightAtt(Att.SEQ, 0, sequenceBox.getText());
    3838                }
    3939        };
     
    4646                                int idx = visibilities.get(vis);
    4747                                if (idx == visibilityBox.getSelectedIndex())
    48                                         dlg.mark.setLightAtt(Att.VIS, vis);
     48                                        dlg.mark.setLightAtt(Att.VIS, 0, vis);
    4949                        }
    5050                }
     
    5454        private ActionListener alHeight = new ActionListener() {
    5555                public void actionPerformed(java.awt.event.ActionEvent e) {
    56                         dlg.mark.setLightAtt(Att.HGT, heightBox.getText());
     56                        dlg.mark.setLightAtt(Att.HGT, 0, heightBox.getText());
    5757                }
    5858        };
     
    6161        private ActionListener alRange = new ActionListener() {
    6262                public void actionPerformed(java.awt.event.ActionEvent e) {
    63                         dlg.mark.setLightAtt(Att.RNG, rangeBox.getText());
     63                        dlg.mark.setLightAtt(Att.RNG, 0, rangeBox.getText());
    6464                }
    6565        };
     
    6868        private ActionListener alOrientation = new ActionListener() {
    6969                public void actionPerformed(java.awt.event.ActionEvent e) {
    70                         dlg.mark.setLightAtt(Att.ORT, orientationBox.getText());
     70                        dlg.mark.setLightAtt(Att.ORT, 0, orientationBox.getText());
    7171                }
    7272        };
     
    7979                                int idx = categories.get(lit);
    8080                                if (idx == categoryBox.getSelectedIndex())
    81                                         dlg.mark.setLightAtt(Att.LIT, lit);
     81                                        dlg.mark.setLightAtt(Att.LIT, 0, lit);
    8282                        }
    8383                }
     
    9191                                int idx = exhibitions.get(exh);
    9292                                if (idx == exhibitionBox.getSelectedIndex())
    93                                         dlg.mark.setLightAtt(Att.EXH, exh);
     93                                        dlg.mark.setLightAtt(Att.EXH, 0, exh);
    9494                        }
    9595                }
     
    106106                                        panelSector = new PanelSectors(dlg);
    107107                                }
    108 //                              if (panelSector.getSectorCount() == 0) {
    109 //                                      panelSector.addSector(1);
    110 //                                      dlg.mark.setSectored(true);
    111 //                              }
     108                                dlg.mark.setSectored(true);
    112109                                panelSector.setVisible(true);
    113110                        } else {
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/panels/PanelSectors.java

    r27023 r27027  
    33import java.awt.*;
    44import java.awt.event.*;
     5import java.util.EnumMap;
    56
    67import javax.swing.*;
    78import javax.swing.table.*;
    89
     10import oseam.Messages;
    911import oseam.dialogs.OSeaMAction;
    10 import oseam.seamarks.*;
    11 import oseam.seamarks.SeaMark.Att;
    1212import oseam.seamarks.SeaMark.*;
    1313
     
    2222        private ActionListener alMinusButton = new ActionListener() {
    2323                public void actionPerformed(java.awt.event.ActionEvent e) {
    24                         deleteSector(0);
     24                        if ((getSectorCount() > 1) && (table.getSelectedRow() != 0))
     25                                deleteSector(table.getSelectedRow());
    2526                }
    2627        };
     
    2829        private ActionListener alPlusButton = new ActionListener() {
    2930                public void actionPerformed(java.awt.event.ActionEvent e) {
    30                         addSector(0);
     31                        if (table.getSelectedRow() < 0)
     32                                addSector(table.getRowCount());
     33                        else
     34                                addSector(table.getSelectedRow()+1);
    3135                }
    3236        };
     37        public JComboBox visibilityBox;
     38        public EnumMap<Vis, String> visibilities = new EnumMap<Vis, String>(Vis.class);
    3339
    3440        public PanelSectors(OSeaMAction dia) {
    3541                super("Sector Table");
    3642                dlg = dia;
    37                 this.setSize(700, 100);
     43                this.setSize(800, 100);
    3844                this.setVisible(true);
    3945                this.setAlwaysOnTop(true);
    4046                this.setLocation(450, 0);
    41                 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     47                this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    4248                this.setLayout(null);
    4349                minusButton = new JButton(new ImageIcon(getClass().getResource("/images/MinusButton.png")));
     
    5056                this.add(plusButton);
    5157                panel = new JPanel(new BorderLayout());
    52                 panel.setBounds(40, 0, 660, 512);
     58                panel.setBounds(40, 0, 760, 512);
    5359                model = new SectorTable();
    5460                table = new JTable(model);
    55                 table.setBounds(0, 0, 660, 34);
     61                table.setBounds(0, 0, 760, 34);
    5662                panel.add(new JScrollPane(table));
    5763                this.getContentPane().add(panel);
     64               
     65                TableColumn visColumn = table.getColumnModel().getColumn(11);
     66                visibilityBox = new JComboBox();
     67                addVisibItem(Messages.getString("NoneSpecified"), Vis.UNKNOWN);
     68                addVisibItem(Messages.getString("Intensified"), Vis.INTEN);
     69                addVisibItem(Messages.getString("Unintensified"), Vis.UNINTEN);
     70                addVisibItem(Messages.getString("PartiallyObscured"), Vis.PARTOBS);
     71                visColumn.setCellEditor(new DefaultCellEditor(visibilityBox));
    5872        }
    5973
    6074        private class SectorTable extends AbstractTableModel {
    6175
    62                 private String[] headings = { "Sector", "Colour", "Character", "Group", "Sequence", "Period", "Height", "Range", "Visibility", "Start", "End", "Radius" };
     76                private String[] headings = { "Sector", "Colour", "Character", "Group", "Sequence", "Period",
     77                                "Start", "End", "Radius", "Height", "Range", "Visibility", "Exhibition", "Category" };
    6378
    6479                public SectorTable() {
     
    7893
    7994                public boolean isCellEditable(int row, int col) {
    80                         return (col > 0);
     95                        return ((col > 0) && (row > 0));
    8196                }
    8297
     
    8499                        switch (col) {
    85100                        case 1:
    86                                 return Col.class;
    87                         case 7:
     101                                return Color.class;
     102                        case 11:
    88103                                return Vis.class;
     104                        case 12:
     105                                return Exh.class;
     106                        case 13:
     107                                return Lit.class;
    89108                        default:
    90109                                return String.class;
     
    93112
    94113                public Object getValueAt(int row, int col) {
    95                         return dlg.mark.getLightAtt(col, row);
     114                        if (col == 0)
     115                                return row;
     116                        else
     117                                return dlg.mark.getLightAtt(col-1, row);
    96118                }
    97119
    98120                public void setValueAt(Object value, int row, int col) {
    99                         dlg.mark.setLightAtt(col, row, value);
     121                        switch (col) {
     122                        case 4:
     123                        case 5:
     124                        case 6:
     125                        case 7:
     126                        case 8:
     127                        case 9:
     128                        case 13:
     129                                dlg.mark.setLightAtt(col-1, row, dlg.mark.validDecimal((String)value));
     130                                break;
     131                        case 11:
     132                                for (Vis vis : visibilities.keySet()) {
     133                                        String str = visibilities.get(vis);
     134                                        if (str.equals(value))
     135                                                dlg.mark.setLightAtt(Att.VIS, row, vis);
     136                                }
     137                                break;
     138                        default:
     139                                dlg.mark.setLightAtt(col-1, row, value);
     140                        }
    100141                }
    101142        }
     
    106147
    107148        public void addSector(int idx) {
    108                 dlg.mark.addLightAtt(Att.COL, Col.UNKNOWN);
    109                 table.setSize(660, ((table.getRowCount() * 16) + 18));
     149                dlg.mark.addLight(idx);
     150                table.setSize(760, ((table.getRowCount() * 16) + 18));
    110151                if (table.getRowCount() > 3) {
    111                         this.setSize(700, ((table.getRowCount() * 16) + 40));
     152                        this.setSize(800, ((table.getRowCount() * 16) + 40));
    112153                } else {
    113                         this.setSize(700, 100);
     154                        this.setSize(800, 100);
    114155                }
    115156        }
    116157
    117158        public void deleteSector(int idx) {
    118                 dlg.mark.subLightAtt(Att.COL, 0);
    119                 table.setSize(660, ((table.getRowCount() * 16) + 18));
     159                dlg.mark.subLight(idx);
     160                table.setSize(760, ((table.getRowCount() * 16) + 18));
    120161                if (table.getRowCount() > 3) {
    121                         this.setSize(700, ((table.getRowCount() * 16) + 40));
     162                        this.setSize(800, ((table.getRowCount() * 16) + 40));
    122163                } else {
    123                         this.setSize(700, 100);
     164                        this.setSize(800, 100);
    124165                }
    125166        }
    126167
     168        private void addVisibItem(String str, Vis vis) {
     169                visibilities.put(vis, str);
     170                visibilityBox.addItem(str);
     171        }
     172
    127173}
  • applications/editors/josm/plugins/smed/plugs/oseam/src/oseam/seamarks/SeaMark.java

    r27023 r27027  
    291291        public static final EnumMap<Col, Color> ColMAP = new EnumMap<Col, Color>(Col.class);
    292292        static {
     293                ColMAP.put(Col.UNKNOWN, new Color(0xc0c0c0));
    293294                ColMAP.put(Col.WHITE, Color.WHITE);
    294295                ColMAP.put(Col.RED, Color.RED);
    295296                ColMAP.put(Col.ORANGE, Color.ORANGE);
    296                 ColMAP.put(Col.AMBER, new Color(0xffbf00f));
     297                ColMAP.put(Col.AMBER, new Color(0xfbf00f));
    297298                ColMAP.put(Col.YELLOW, Color.YELLOW);
    298299                ColMAP.put(Col.GREEN, Color.GREEN);
     
    464465        }
    465466
    466         public static final Map<EnumSet<Vis>, String> VisMAP = new HashMap<EnumSet<Vis>, String>();
     467        public static final EnumMap<Vis, String> VisSTR = new EnumMap<Vis, String>(Vis.class);
    467468        static {
    468                 VisMAP.put(EnumSet.of(Vis.UNKNOWN), "");
    469                 VisMAP.put(EnumSet.of(Vis.HIGH), "high");
    470                 VisMAP.put(EnumSet.of(Vis.LOW), "low");
    471                 VisMAP.put(EnumSet.of(Vis.FAINT), "faint");
    472                 VisMAP.put(EnumSet.of(Vis.INTEN), "intensified");
    473                 VisMAP.put(EnumSet.of(Vis.UNINTEN), "unintensified");
    474                 VisMAP.put(EnumSet.of(Vis.REST), "restricted");
    475                 VisMAP.put(EnumSet.of(Vis.OBS), "obscured");
    476                 VisMAP.put(EnumSet.of(Vis.PARTOBS), "part_obscured");
     469                VisSTR.put(Vis.UNKNOWN, "");
     470                VisSTR.put(Vis.HIGH, "high");
     471                VisSTR.put(Vis.LOW, "low");
     472                VisSTR.put(Vis.FAINT, "faint");
     473                VisSTR.put(Vis.INTEN, "intensified");
     474                VisSTR.put(Vis.UNINTEN, "unintensified");
     475                VisSTR.put(Vis.REST, "restricted");
     476                VisSTR.put(Vis.OBS, "obscured");
     477                VisSTR.put(Vis.PARTOBS, "part_obscured");
    477478        }
    478479       
     
    488489
    489490        public enum Exh { UNKNOWN, H24, DAY, NIGHT, FOG }
    490         public static final Map<EnumSet<Exh>, String> ExhMAP = new HashMap<EnumSet<Exh>, String>();
     491       
     492        public static final EnumMap<Exh, String> ExhSTR = new EnumMap<Exh, String>(Exh.class);
    491493        static {
    492                 ExhMAP.put(EnumSet.of(Exh.UNKNOWN), "");
    493                 ExhMAP.put(EnumSet.of(Exh.H24), "24h");
    494                 ExhMAP.put(EnumSet.of(Exh.DAY), "day");
    495                 ExhMAP.put(EnumSet.of(Exh.NIGHT), "night");
    496                 ExhMAP.put(EnumSet.of(Exh.FOG), "fog");
     494                ExhSTR.put(Exh.UNKNOWN, "");
     495                ExhSTR.put(Exh.H24, "24h");
     496                ExhSTR.put(Exh.DAY, "day");
     497                ExhSTR.put(Exh.NIGHT, "night");
     498                ExhSTR.put(Exh.FOG, "fog");
    497499        }
    498500       
    499         public enum Att { COL, CHR, GRP, SEQ, PER, HGT, RNG, VIS, BEG, END, RAD, EXH, LIT, ORT }
     501        public enum Att { COL, CHR, GRP, SEQ, PER, BEG, END, RAD, HGT, RNG, VIS, EXH, LIT, ORT }
     502       
     503        public Object[] sector = {Col.UNKNOWN, "", "", "", "", "", "", "", "", "", Vis.UNKNOWN, Exh.UNKNOWN, Lit.UNKNOWN, "" };
    500504       
    501505        private ArrayList<Object[]> sectors = new ArrayList<Object[]>();
     
    504508                return sectors.size();
    505509        }
    506 
     510       
    507511        public Object getLightAtt(Att att, int i) {
    508512                return getLightAtt(att.ordinal(), i);
     
    515519        }
    516520
    517         public void setLightAtt(Att att, Object obj) {
    518                 sectors.clear();
    519                 sectors.add(new Object[14]);
    520                 sectors.get(0)[att.ordinal()] = obj;
    521         }
    522 
    523521        public void setLightAtt(Att att, int i, Object obj) {
    524522                setLightAtt(att.ordinal(), i, obj);
     
    530528        }
    531529
    532         public void addLightAtt(Att att, int i, Object obj) {
     530        public void clrLight() {
     531                sectors.clear();
     532                sectors.add(sector.clone());
     533        }
     534
     535        public void addLight(int i) {
    533536                if (sectors.size() >= i) {
    534                         sectors.add(i, new Object[14]);
    535                         sectors.get(i)[att.ordinal()] = obj;
    536                 }
    537         }
    538 
    539         public void addLightAtt(Att att, Object obj) {
    540                 sectors.add(new Object[14]);
    541                 sectors.get(sectors.size()-1)[att.ordinal()] = obj;
    542         }
    543 
    544         public void subLightAtt(Att att, int i) {
     537                        sectors.add(i, sectors.get(0).clone());
     538                }
     539        }
     540
     541        public void addLight() {
     542                sectors.add(sectors.get(0).clone());
     543        }
     544
     545        public void subLight(int i) {
    545546                if (sectors.size() > i)
    546547                        sectors.remove(i);
     
    12751276                        }
    12761277                }
     1278               
     1279                clrLight();
    12771280
    12781281                if (keys.containsKey("seamark:fog_signal")) {
     
    17131716                                }
    17141717                        }
     1718                       
     1719                        for (int i = 0; i < sectors.size(); i++) {
     1720                                String secStr = (i == 0) ? "" : (":" + Integer.toString(i));
     1721                                if (sectors.get(i)[0] != Col.UNKNOWN)
     1722                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":colour", ColSTR.get(sectors.get(i)[0])));
     1723                                if (!((String)sectors.get(i)[1]).isEmpty())
     1724                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":character", (String)sectors.get(i)[1]));
     1725                                if (!((String)sectors.get(i)[2]).isEmpty())
     1726                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":group", (String)sectors.get(i)[2]));
     1727                                if (!((String)sectors.get(i)[3]).isEmpty())
     1728                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":sequence", (String)sectors.get(i)[3]));
     1729                                if (!((String)sectors.get(i)[4]).isEmpty())
     1730                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":period", (String)sectors.get(i)[4]));
     1731                                if (!((String)sectors.get(i)[5]).isEmpty())
     1732                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":sector_start", (String)sectors.get(i)[5]));
     1733                                if (!((String)sectors.get(i)[6]).isEmpty())
     1734                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":sector_end", (String)sectors.get(i)[6]));
     1735                                if (!((String)sectors.get(i)[7]).isEmpty())
     1736                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":radius", (String)sectors.get(i)[7]));
     1737                                if (!((String)sectors.get(i)[8]).isEmpty())
     1738                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":height", (String)sectors.get(i)[8]));
     1739                                if (!((String)sectors.get(i)[9]).isEmpty())
     1740                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":range", (String)sectors.get(i)[9]));
     1741                                if (sectors.get(i)[10] != Vis.UNKNOWN)
     1742                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":visibility", VisSTR.get(sectors.get(i)[10])));
     1743                                if (sectors.get(i)[11] != Exh.UNKNOWN)
     1744                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":exhibition", ExhSTR.get(sectors.get(i)[11])));
     1745                                if (sectors.get(i)[12] != Lit.UNKNOWN)
     1746                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":category", LitSTR.get(sectors.get(i)[12])));
     1747                                if (!((String)sectors.get(i)[13]).isEmpty())
     1748                                        Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:light" + secStr + ":orientation", (String)sectors.get(i)[13]));
     1749                        }
     1750                       
    17151751                        if (hasFog()) {
    17161752                                Main.main.undoRedo.add(new ChangePropertyCommand(node, "seamark:fog_signal", FogSTR.get(getFogSound())));
Note: See TracChangeset for help on using the changeset viewer.